[varc] Add ConditionSets
This commit is contained in:
parent
c155632e8f
commit
74f870f4ef
@ -2693,6 +2693,22 @@ def prune_post_subset(self, font, options):
|
||||
if comp.axisIndicesIndex is not None:
|
||||
comp.axisIndicesIndex = mapping[comp.axisIndicesIndex]
|
||||
|
||||
conditionSetList = table.ConditionSetList
|
||||
if conditionSetList is not None:
|
||||
conditionSets = conditionSetList.ConditionSet
|
||||
usedIndices = set()
|
||||
for glyph in table.VarCompositeGlyphs.VarCompositeGlyph:
|
||||
for comp in glyph.components:
|
||||
if comp.conditionSetIndex is not None:
|
||||
usedIndices.add(comp.conditionSetIndex)
|
||||
usedIndices = sorted(usedIndices)
|
||||
conditionSetList.ConditionSet = _list_subset(conditionSets, usedIndices)
|
||||
mapping = {old: new for new, old in enumerate(usedIndices)}
|
||||
for glyph in table.VarCompositeGlyphs.VarCompositeGlyph:
|
||||
for comp in glyph.components:
|
||||
if comp.conditionSetIndex is not None:
|
||||
comp.conditionSetIndex = mapping[comp.conditionSetIndex]
|
||||
|
||||
return True
|
||||
|
||||
|
||||
|
@ -3168,6 +3168,25 @@ otData = [
|
||||
),
|
||||
],
|
||||
),
|
||||
(
|
||||
"ConditionSetList",
|
||||
[
|
||||
(
|
||||
"uint32",
|
||||
"ConditionSetCount",
|
||||
None,
|
||||
None,
|
||||
"Number of condition-set tables in the ConditionSet array",
|
||||
),
|
||||
(
|
||||
"LOffset",
|
||||
"ConditionSet",
|
||||
"ConditionSetCount",
|
||||
0,
|
||||
"Array of condition-set tables.",
|
||||
),
|
||||
],
|
||||
),
|
||||
(
|
||||
"ConditionSet",
|
||||
[
|
||||
@ -3377,6 +3396,7 @@ otData = [
|
||||
),
|
||||
("LOffset", "Coverage", None, None, ""),
|
||||
("LOffset", "MultiVarStore", None, None, "(may be NULL)"),
|
||||
("LOffset", "ConditionSetList", None, None, "(may be NULL)"),
|
||||
("LOffset", "AxisIndicesList", None, None, "(may be NULL)"),
|
||||
("LOffset", "VarCompositeGlyphs", None, None, ""),
|
||||
],
|
||||
|
@ -60,7 +60,7 @@ class VarComponentFlags(IntFlag):
|
||||
HAVE_TRANSLATE_Y = 1 << 5
|
||||
HAVE_ROTATION = 1 << 6
|
||||
|
||||
USE_MY_METRICS = 1 << 7
|
||||
HAVE_CONDITION = 1 << 7
|
||||
|
||||
HAVE_SCALE_X = 1 << 8
|
||||
HAVE_SCALE_Y = 1 << 9
|
||||
@ -158,6 +158,7 @@ class VarComponent:
|
||||
def populateDefaults(self, propagator=None):
|
||||
self.flags = 0
|
||||
self.glyphName = None
|
||||
self.conditionSetIndex = None
|
||||
self.axisIndicesIndex = None
|
||||
self.axisValues = ()
|
||||
self.axisValuesVarIndex = NO_VARIATION_INDEX
|
||||
@ -174,6 +175,9 @@ class VarComponent:
|
||||
i += gidSize
|
||||
self.glyphName = font.glyphOrder[glyphID]
|
||||
|
||||
if flags & VarComponentFlags.HAVE_CONDITION:
|
||||
self.conditionSetIndex, i = _read_uint32var(data, i)
|
||||
|
||||
if flags & VarComponentFlags.HAVE_AXES:
|
||||
self.axisIndicesIndex, i = _read_uint32var(data, i)
|
||||
else:
|
||||
@ -244,6 +248,10 @@ class VarComponent:
|
||||
flags &= ~VarComponentFlags.GID_IS_24BIT
|
||||
data.append(_packer[2](glyphID))
|
||||
|
||||
if self.conditionSetIndex is not None:
|
||||
flags |= VarComponentFlags.HAVE_CONDITION
|
||||
data.append(_write_uint32var(self.conditionSetIndex))
|
||||
|
||||
numAxes = len(self.axisValues)
|
||||
|
||||
if numAxes:
|
||||
@ -293,6 +301,8 @@ class VarComponent:
|
||||
|
||||
write("glyphName", self.glyphName)
|
||||
|
||||
if self.conditionSetIndex is not None:
|
||||
write("conditionSetIndex", self.conditionSetIndex)
|
||||
if self.axisIndicesIndex is not None:
|
||||
write("axisIndicesIndex", self.axisIndicesIndex)
|
||||
if (
|
||||
@ -332,6 +342,8 @@ class VarComponent:
|
||||
|
||||
if name == "glyphName":
|
||||
self.glyphName = v
|
||||
elif name == "conditionSetIndex":
|
||||
self.conditionSetIndex = safeEval(v)
|
||||
elif name == "axisIndicesIndex":
|
||||
self.axisIndicesIndex = safeEval(v)
|
||||
elif name == "axisValues":
|
||||
|
@ -299,6 +299,28 @@ class _TTGlyphVARC(_TTGlyph):
|
||||
)
|
||||
|
||||
for comp in glyph.components:
|
||||
|
||||
if comp.flags & VarComponentFlags.HAVE_CONDITION:
|
||||
conditionSet = varc.ConditionSetList.ConditionSet[
|
||||
comp.conditionSetIndex
|
||||
]
|
||||
# Evaluate condition
|
||||
show = True
|
||||
for condition in conditionSet.ConditionTable:
|
||||
if condition.Format == 1:
|
||||
axisIndex = condition.AxisIndex
|
||||
axisTag = fvarAxes[axisIndex].axisTag
|
||||
axisValue = self.glyphSet.location[axisTag]
|
||||
minValue = condition.FilterRangeMinValue
|
||||
maxValue = condition.FilterRangeMaxValue
|
||||
if not (minValue <= axisValue <= maxValue):
|
||||
show = False
|
||||
break
|
||||
else:
|
||||
show = False # Unkonwn condition format
|
||||
if not show:
|
||||
continue
|
||||
|
||||
location = {}
|
||||
if comp.axisIndicesIndex is not None:
|
||||
axisIndices = varc.AxisIndicesList.Item[comp.axisIndicesIndex]
|
||||
|
Binary file not shown.
@ -58,12 +58,12 @@
|
||||
<hmtx>
|
||||
<mtx name=".notdef" width="500" lsb="0"/>
|
||||
<mtx name="glyph00003" width="460" lsb="0"/>
|
||||
<mtx name="glyph00004" width="460" lsb="0"/>
|
||||
<mtx name="glyph00004" width="460" lsb="-3"/>
|
||||
<mtx name="glyph00005" width="460" lsb="0"/>
|
||||
<mtx name="glyph00006" width="460" lsb="0"/>
|
||||
<mtx name="glyph00006" width="460" lsb="340"/>
|
||||
<mtx name="glyph00007" width="460" lsb="0"/>
|
||||
<mtx name="glyph00008" width="460" lsb="340"/>
|
||||
<mtx name="glyph00009" width="460" lsb="-3"/>
|
||||
<mtx name="glyph00008" width="460" lsb="0"/>
|
||||
<mtx name="glyph00009" width="460" lsb="0"/>
|
||||
<mtx name="glyph00010" width="460" lsb="45"/>
|
||||
<mtx name="uniAC00" width="460" lsb="0"/>
|
||||
<mtx name="uniAC01" width="460" lsb="0"/>
|
||||
@ -94,31 +94,7 @@
|
||||
|
||||
<TTGlyph name="glyph00003"/><!-- contains no outline data -->
|
||||
|
||||
<TTGlyph name="glyph00004"/><!-- contains no outline data -->
|
||||
|
||||
<TTGlyph name="glyph00005"/><!-- contains no outline data -->
|
||||
|
||||
<TTGlyph name="glyph00006"/><!-- contains no outline data -->
|
||||
|
||||
<TTGlyph name="glyph00007"/><!-- contains no outline data -->
|
||||
|
||||
<TTGlyph name="glyph00008" xMin="340" yMin="-41" xMax="450" yMax="402">
|
||||
<contour>
|
||||
<pt x="358" y="157" on="1"/>
|
||||
<pt x="450" y="157" on="1"/>
|
||||
<pt x="450" y="192" on="1"/>
|
||||
<pt x="358" y="192" on="1"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<pt x="340" y="-41" on="1"/>
|
||||
<pt x="378" y="-41" on="1"/>
|
||||
<pt x="378" y="402" on="1"/>
|
||||
<pt x="340" y="402" on="1"/>
|
||||
</contour>
|
||||
<instructions/>
|
||||
</TTGlyph>
|
||||
|
||||
<TTGlyph name="glyph00009" xMin="-3" yMin="-17" xMax="420" yMax="349">
|
||||
<TTGlyph name="glyph00004" xMin="-3" yMin="-17" xMax="420" yMax="349">
|
||||
<contour>
|
||||
<pt x="3" y="-17" on="1"/>
|
||||
<pt x="100" y="-6" on="0"/>
|
||||
@ -140,6 +116,30 @@
|
||||
<instructions/>
|
||||
</TTGlyph>
|
||||
|
||||
<TTGlyph name="glyph00005"/><!-- contains no outline data -->
|
||||
|
||||
<TTGlyph name="glyph00006" xMin="340" yMin="-41" xMax="450" yMax="402">
|
||||
<contour>
|
||||
<pt x="358" y="157" on="1"/>
|
||||
<pt x="450" y="157" on="1"/>
|
||||
<pt x="450" y="192" on="1"/>
|
||||
<pt x="358" y="192" on="1"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<pt x="340" y="-41" on="1"/>
|
||||
<pt x="378" y="-41" on="1"/>
|
||||
<pt x="378" y="402" on="1"/>
|
||||
<pt x="340" y="402" on="1"/>
|
||||
</contour>
|
||||
<instructions/>
|
||||
</TTGlyph>
|
||||
|
||||
<TTGlyph name="glyph00007"/><!-- contains no outline data -->
|
||||
|
||||
<TTGlyph name="glyph00008"/><!-- contains no outline data -->
|
||||
|
||||
<TTGlyph name="glyph00009"/><!-- contains no outline data -->
|
||||
|
||||
<TTGlyph name="glyph00010" xMin="45" yMin="-17" xMax="420" yMax="349">
|
||||
<contour>
|
||||
<pt x="420" y="-17" on="1"/>
|
||||
@ -161,6 +161,36 @@
|
||||
</glyf>
|
||||
|
||||
<name>
|
||||
<namerecord nameID="1" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||
rcjk
|
||||
</namerecord>
|
||||
<namerecord nameID="2" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||
varc
|
||||
</namerecord>
|
||||
<namerecord nameID="256" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||
Weight
|
||||
</namerecord>
|
||||
<namerecord nameID="257" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||
OpticalSize
|
||||
</namerecord>
|
||||
<namerecord nameID="258" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||
0000
|
||||
</namerecord>
|
||||
<namerecord nameID="259" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||
0001
|
||||
</namerecord>
|
||||
<namerecord nameID="260" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||
0002
|
||||
</namerecord>
|
||||
<namerecord nameID="261" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||
0003
|
||||
</namerecord>
|
||||
<namerecord nameID="262" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||
0004
|
||||
</namerecord>
|
||||
<namerecord nameID="263" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||
0005
|
||||
</namerecord>
|
||||
<namerecord nameID="1" platformID="3" platEncID="1" langID="0x409">
|
||||
rcjk
|
||||
</namerecord>
|
||||
@ -191,30 +221,6 @@
|
||||
<namerecord nameID="263" platformID="3" platEncID="1" langID="0x409">
|
||||
0005
|
||||
</namerecord>
|
||||
<namerecord nameID="264" platformID="3" platEncID="1" langID="0x409">
|
||||
0006
|
||||
</namerecord>
|
||||
<namerecord nameID="265" platformID="3" platEncID="1" langID="0x409">
|
||||
0007
|
||||
</namerecord>
|
||||
<namerecord nameID="266" platformID="3" platEncID="1" langID="0x409">
|
||||
0008
|
||||
</namerecord>
|
||||
<namerecord nameID="267" platformID="3" platEncID="1" langID="0x409">
|
||||
0009
|
||||
</namerecord>
|
||||
<namerecord nameID="268" platformID="3" platEncID="1" langID="0x409">
|
||||
0010
|
||||
</namerecord>
|
||||
<namerecord nameID="269" platformID="3" platEncID="1" langID="0x409">
|
||||
0011
|
||||
</namerecord>
|
||||
<namerecord nameID="270" platformID="3" platEncID="1" langID="0x409">
|
||||
0012
|
||||
</namerecord>
|
||||
<namerecord nameID="271" platformID="3" platEncID="1" langID="0x409">
|
||||
0013
|
||||
</namerecord>
|
||||
</name>
|
||||
|
||||
<post>
|
||||
@ -235,10 +241,10 @@
|
||||
<Glyph value="uniAC00"/>
|
||||
<Glyph value="uniAC01"/>
|
||||
<Glyph value="glyph00003"/>
|
||||
<Glyph value="glyph00004"/>
|
||||
<Glyph value="glyph00005"/>
|
||||
<Glyph value="glyph00006"/>
|
||||
<Glyph value="glyph00007"/>
|
||||
<Glyph value="glyph00008"/>
|
||||
<Glyph value="glyph00009"/>
|
||||
</Coverage>
|
||||
<MultiVarStore Format="1">
|
||||
<Format value="1"/>
|
||||
@ -285,88 +291,88 @@
|
||||
<VarRegionIndex index="0" value="0"/>
|
||||
<VarRegionIndex index="1" value="1"/>
|
||||
<VarRegionIndex index="2" value="2"/>
|
||||
<Item index="0" value="[-964, 0, 406, 0, 16384, 0, 0, 0, 0]"/>
|
||||
<Item index="1" value="[-295, -327, 0, 1092, 273, 393, 0, 0, 0, 0, 0, 0, 0, 0, 0]"/>
|
||||
<Item index="2" value="[0, 0, 0, 6, 0, 0]"/>
|
||||
<Item index="3" value="[-328, 0, 2185, 0, 1546, 0, 0, 0, 0]"/>
|
||||
<Item index="4" value="[0, -5, -26, 0, 0, 0]"/>
|
||||
<Item index="5" value="[0, -327, 0, 1704, 0, 0, 0, 0, 0]"/>
|
||||
<Item index="6" value="[0, 0, 0, 8, 0, 0]"/>
|
||||
<Item index="0" value="[0, -327, 0, 1704, 0, 0, 0, 0, 0]"/>
|
||||
<Item index="1" value="[0, 0, 0, 8, 0, 0]"/>
|
||||
<Item index="2" value="[-295, -327, 0, 1092, 273, 393, 0, 0, 0, 0, 0, 0, 0, 0, 0]"/>
|
||||
<Item index="3" value="[0, 0, 0, 6, 0, 0]"/>
|
||||
<Item index="4" value="[-964, 0, 406, 0, 16384, 0, 0, 0, 0]"/>
|
||||
<Item index="5" value="[-328, 0, 2185, 0, 1546, 0, 0, 0, 0]"/>
|
||||
<Item index="6" value="[0, -5, -26, 0, 0, 0]"/>
|
||||
</MultiVarData>
|
||||
</MultiVarStore>
|
||||
<AxisIndicesList>
|
||||
<Item index="0" value="[2, 3, 4]"/>
|
||||
<Item index="1" value="[2, 3, 4, 5, 6]"/>
|
||||
<Item index="2" value="[4]"/>
|
||||
<Item index="1" value="[4]"/>
|
||||
<Item index="2" value="[2, 3, 4, 5, 6]"/>
|
||||
</AxisIndicesList>
|
||||
<VarCompositeGlyphs>
|
||||
<VarCompositeGlyph index="0">
|
||||
<VarComponent index="0">
|
||||
<glyphName value="glyph00007"/>
|
||||
<glyphName value="glyph00003"/>
|
||||
</VarComponent>
|
||||
<VarComponent index="1">
|
||||
<glyphName value="glyph00003"/>
|
||||
<glyphName value="glyph00005"/>
|
||||
</VarComponent>
|
||||
</VarCompositeGlyph>
|
||||
<VarCompositeGlyph index="1">
|
||||
<VarComponent index="0">
|
||||
<glyphName value="glyph00005"/>
|
||||
<glyphName value="glyph00007"/>
|
||||
</VarComponent>
|
||||
<VarComponent index="1">
|
||||
<glyphName value="glyph00004"/>
|
||||
<glyphName value="glyph00008"/>
|
||||
</VarComponent>
|
||||
<VarComponent index="2">
|
||||
<glyphName value="glyph00006"/>
|
||||
<glyphName value="glyph00009"/>
|
||||
</VarComponent>
|
||||
</VarCompositeGlyph>
|
||||
<VarCompositeGlyph index="2">
|
||||
<VarComponent index="0">
|
||||
<glyphName value="glyph00008"/>
|
||||
<axisIndicesIndex value="2"/>
|
||||
<axisValues value="[0.2159]"/>
|
||||
<translateX value="-6.0"/>
|
||||
<glyphName value="glyph00004"/>
|
||||
<axisIndicesIndex value="0"/>
|
||||
<axisValues value="[-0.258, 0.05, -0.5178]"/>
|
||||
<axisValuesVarIndex value="0"/>
|
||||
<transformVarIndex value="1"/>
|
||||
<translateX value="-5.0"/>
|
||||
<translateY value="12.0"/>
|
||||
</VarComponent>
|
||||
</VarCompositeGlyph>
|
||||
<VarCompositeGlyph index="3">
|
||||
<VarComponent index="0">
|
||||
<glyphName value="glyph00008"/>
|
||||
<axisIndicesIndex value="0"/>
|
||||
<axisValues value="[-0.8047, 0.0, 0.4839]"/>
|
||||
<axisValuesVarIndex value="0"/>
|
||||
<translateX value="-3.0"/>
|
||||
<glyphName value="glyph00006"/>
|
||||
<axisIndicesIndex value="1"/>
|
||||
<axisValues value="[0.2159]"/>
|
||||
<translateX value="-6.0"/>
|
||||
</VarComponent>
|
||||
</VarCompositeGlyph>
|
||||
<VarCompositeGlyph index="4">
|
||||
<VarComponent index="0">
|
||||
<glyphName value="glyph00009"/>
|
||||
<axisIndicesIndex value="1"/>
|
||||
<glyphName value="glyph00004"/>
|
||||
<axisIndicesIndex value="2"/>
|
||||
<axisValues value="[-0.54, 0.04, -0.5178, 0.0, 0.0]"/>
|
||||
<axisValuesVarIndex value="1"/>
|
||||
<transformVarIndex value="2"/>
|
||||
<axisValuesVarIndex value="2"/>
|
||||
<transformVarIndex value="3"/>
|
||||
<translateX value="-5.0"/>
|
||||
<translateY value="24.0"/>
|
||||
</VarComponent>
|
||||
</VarCompositeGlyph>
|
||||
<VarCompositeGlyph index="5">
|
||||
<VarComponent index="0">
|
||||
<glyphName value="glyph00010"/>
|
||||
<glyphName value="glyph00006"/>
|
||||
<axisIndicesIndex value="0"/>
|
||||
<axisValues value="[-0.776, -0.3566, 0.0]"/>
|
||||
<axisValuesVarIndex value="3"/>
|
||||
<transformVarIndex value="4"/>
|
||||
<translateX value="53.0"/>
|
||||
<translateY value="-231.0"/>
|
||||
<axisValues value="[-0.8047, 0.0, 0.4839]"/>
|
||||
<axisValuesVarIndex value="4"/>
|
||||
<translateX value="-3.0"/>
|
||||
</VarComponent>
|
||||
</VarCompositeGlyph>
|
||||
<VarCompositeGlyph index="6">
|
||||
<VarComponent index="0">
|
||||
<glyphName value="glyph00009"/>
|
||||
<glyphName value="glyph00010"/>
|
||||
<axisIndicesIndex value="0"/>
|
||||
<axisValues value="[-0.258, 0.05, -0.5178]"/>
|
||||
<axisValues value="[-0.776, -0.3566, 0.0]"/>
|
||||
<axisValuesVarIndex value="5"/>
|
||||
<transformVarIndex value="6"/>
|
||||
<translateX value="-5.0"/>
|
||||
<translateY value="12.0"/>
|
||||
<translateX value="53.0"/>
|
||||
<translateY value="-231.0"/>
|
||||
</VarComponent>
|
||||
</VarCompositeGlyph>
|
||||
</VarCompositeGlyphs>
|
||||
@ -453,201 +459,12 @@
|
||||
<MaxValue>1.0</MaxValue>
|
||||
<AxisNameID>263</AxisNameID>
|
||||
</Axis>
|
||||
|
||||
<!-- 0006 -->
|
||||
<Axis>
|
||||
<AxisTag>0006</AxisTag>
|
||||
<Flags>0x0</Flags>
|
||||
<MinValue>-1.0</MinValue>
|
||||
<DefaultValue>0.0</DefaultValue>
|
||||
<MaxValue>1.0</MaxValue>
|
||||
<AxisNameID>264</AxisNameID>
|
||||
</Axis>
|
||||
|
||||
<!-- 0007 -->
|
||||
<Axis>
|
||||
<AxisTag>0007</AxisTag>
|
||||
<Flags>0x0</Flags>
|
||||
<MinValue>-1.0</MinValue>
|
||||
<DefaultValue>0.0</DefaultValue>
|
||||
<MaxValue>1.0</MaxValue>
|
||||
<AxisNameID>265</AxisNameID>
|
||||
</Axis>
|
||||
|
||||
<!-- 0008 -->
|
||||
<Axis>
|
||||
<AxisTag>0008</AxisTag>
|
||||
<Flags>0x0</Flags>
|
||||
<MinValue>-1.0</MinValue>
|
||||
<DefaultValue>0.0</DefaultValue>
|
||||
<MaxValue>1.0</MaxValue>
|
||||
<AxisNameID>266</AxisNameID>
|
||||
</Axis>
|
||||
|
||||
<!-- 0009 -->
|
||||
<Axis>
|
||||
<AxisTag>0009</AxisTag>
|
||||
<Flags>0x0</Flags>
|
||||
<MinValue>-1.0</MinValue>
|
||||
<DefaultValue>0.0</DefaultValue>
|
||||
<MaxValue>1.0</MaxValue>
|
||||
<AxisNameID>267</AxisNameID>
|
||||
</Axis>
|
||||
|
||||
<!-- 0010 -->
|
||||
<Axis>
|
||||
<AxisTag>0010</AxisTag>
|
||||
<Flags>0x0</Flags>
|
||||
<MinValue>-1.0</MinValue>
|
||||
<DefaultValue>0.0</DefaultValue>
|
||||
<MaxValue>1.0</MaxValue>
|
||||
<AxisNameID>268</AxisNameID>
|
||||
</Axis>
|
||||
|
||||
<!-- 0011 -->
|
||||
<Axis>
|
||||
<AxisTag>0011</AxisTag>
|
||||
<Flags>0x0</Flags>
|
||||
<MinValue>-1.0</MinValue>
|
||||
<DefaultValue>0.0</DefaultValue>
|
||||
<MaxValue>1.0</MaxValue>
|
||||
<AxisNameID>269</AxisNameID>
|
||||
</Axis>
|
||||
|
||||
<!-- 0012 -->
|
||||
<Axis>
|
||||
<AxisTag>0012</AxisTag>
|
||||
<Flags>0x0</Flags>
|
||||
<MinValue>-1.0</MinValue>
|
||||
<DefaultValue>0.0</DefaultValue>
|
||||
<MaxValue>1.0</MaxValue>
|
||||
<AxisNameID>270</AxisNameID>
|
||||
</Axis>
|
||||
|
||||
<!-- 0013 -->
|
||||
<Axis>
|
||||
<AxisTag>0013</AxisTag>
|
||||
<Flags>0x0</Flags>
|
||||
<MinValue>-1.0</MinValue>
|
||||
<DefaultValue>0.0</DefaultValue>
|
||||
<MaxValue>1.0</MaxValue>
|
||||
<AxisNameID>271</AxisNameID>
|
||||
</Axis>
|
||||
</fvar>
|
||||
|
||||
<gvar>
|
||||
<version value="1"/>
|
||||
<reserved value="0"/>
|
||||
<glyphVariations glyph="glyph00008">
|
||||
<tuple>
|
||||
<coord axis="wght" value="1.0"/>
|
||||
<delta pt="0" x="0" y="-15"/>
|
||||
<delta pt="1" x="10" y="-15"/>
|
||||
<delta pt="2" x="10" y="15"/>
|
||||
<delta pt="3" x="0" y="15"/>
|
||||
<delta pt="4" x="-25" y="-10"/>
|
||||
<delta pt="5" x="10" y="-10"/>
|
||||
<delta pt="6" x="10" y="10"/>
|
||||
<delta pt="7" x="-25" y="10"/>
|
||||
<delta pt="8" x="0" y="0"/>
|
||||
<delta pt="9" x="0" y="0"/>
|
||||
<delta pt="10" x="0" y="0"/>
|
||||
<delta pt="11" x="0" y="0"/>
|
||||
</tuple>
|
||||
<tuple>
|
||||
<coord axis="0000" value="-1.0"/>
|
||||
<delta pt="0" x="0" y="0"/>
|
||||
<delta pt="1" x="0" y="0"/>
|
||||
<delta pt="2" x="0" y="0"/>
|
||||
<delta pt="3" x="0" y="0"/>
|
||||
<delta pt="4" x="0" y="229"/>
|
||||
<delta pt="5" x="0" y="229"/>
|
||||
<delta pt="6" x="0" y="0"/>
|
||||
<delta pt="7" x="0" y="0"/>
|
||||
<delta pt="8" x="0" y="0"/>
|
||||
<delta pt="9" x="0" y="0"/>
|
||||
<delta pt="10" x="0" y="0"/>
|
||||
<delta pt="11" x="0" y="0"/>
|
||||
</tuple>
|
||||
<tuple>
|
||||
<coord axis="0002" value="1.0"/>
|
||||
<delta pt="0" x="0" y="202"/>
|
||||
<delta pt="1" x="0" y="202"/>
|
||||
<delta pt="2" x="0" y="202"/>
|
||||
<delta pt="3" x="0" y="202"/>
|
||||
<delta pt="4" x="0" y="0"/>
|
||||
<delta pt="5" x="0" y="0"/>
|
||||
<delta pt="6" x="0" y="0"/>
|
||||
<delta pt="7" x="0" y="0"/>
|
||||
<delta pt="8" x="0" y="0"/>
|
||||
<delta pt="9" x="0" y="0"/>
|
||||
<delta pt="10" x="0" y="0"/>
|
||||
<delta pt="11" x="0" y="0"/>
|
||||
</tuple>
|
||||
<tuple>
|
||||
<coord axis="0001" value="1.0"/>
|
||||
<delta pt="0" x="0" y="0"/>
|
||||
<delta pt="1" x="0" y="0"/>
|
||||
<delta pt="2" x="0" y="0"/>
|
||||
<delta pt="3" x="0" y="0"/>
|
||||
<delta pt="4" x="0" y="6"/>
|
||||
<delta pt="5" x="0" y="6"/>
|
||||
<delta pt="6" x="0" y="0"/>
|
||||
<delta pt="7" x="0" y="0"/>
|
||||
<delta pt="8" x="0" y="0"/>
|
||||
<delta pt="9" x="0" y="0"/>
|
||||
<delta pt="10" x="0" y="0"/>
|
||||
<delta pt="11" x="0" y="0"/>
|
||||
</tuple>
|
||||
<tuple>
|
||||
<coord axis="0003" value="-1.0"/>
|
||||
<delta pt="0" x="0" y="0"/>
|
||||
<delta pt="1" x="-50" y="0"/>
|
||||
<delta pt="2" x="-50" y="0"/>
|
||||
<delta pt="3" x="0" y="0"/>
|
||||
<delta pt="4" x="0" y="0"/>
|
||||
<delta pt="5" x="0" y="0"/>
|
||||
<delta pt="6" x="0" y="0"/>
|
||||
<delta pt="7" x="0" y="0"/>
|
||||
<delta pt="8" x="0" y="0"/>
|
||||
<delta pt="9" x="0" y="0"/>
|
||||
<delta pt="10" x="0" y="0"/>
|
||||
<delta pt="11" x="0" y="0"/>
|
||||
</tuple>
|
||||
<tuple>
|
||||
<coord axis="wght" value="1.0"/>
|
||||
<coord axis="0000" value="-1.0"/>
|
||||
<delta pt="0" x="0" y="0"/>
|
||||
<delta pt="1" x="0" y="0"/>
|
||||
<delta pt="2" x="0" y="0"/>
|
||||
<delta pt="3" x="0" y="0"/>
|
||||
<delta pt="4" x="0" y="0"/>
|
||||
<delta pt="5" x="0" y="0"/>
|
||||
<delta pt="6" x="0" y="0"/>
|
||||
<delta pt="7" x="0" y="0"/>
|
||||
<delta pt="8" x="0" y="0"/>
|
||||
<delta pt="9" x="0" y="0"/>
|
||||
<delta pt="10" x="0" y="0"/>
|
||||
<delta pt="11" x="0" y="0"/>
|
||||
</tuple>
|
||||
<tuple>
|
||||
<coord axis="wght" value="1.0"/>
|
||||
<coord axis="0002" value="1.0"/>
|
||||
<delta pt="0" x="0" y="0"/>
|
||||
<delta pt="1" x="0" y="0"/>
|
||||
<delta pt="2" x="0" y="0"/>
|
||||
<delta pt="3" x="0" y="0"/>
|
||||
<delta pt="4" x="0" y="0"/>
|
||||
<delta pt="5" x="0" y="0"/>
|
||||
<delta pt="6" x="0" y="0"/>
|
||||
<delta pt="7" x="0" y="0"/>
|
||||
<delta pt="8" x="0" y="0"/>
|
||||
<delta pt="9" x="0" y="0"/>
|
||||
<delta pt="10" x="0" y="0"/>
|
||||
<delta pt="11" x="0" y="0"/>
|
||||
</tuple>
|
||||
</glyphVariations>
|
||||
<glyphVariations glyph="glyph00009">
|
||||
<glyphVariations glyph="glyph00004">
|
||||
<tuple>
|
||||
<coord axis="wght" value="1.0"/>
|
||||
<delta pt="0" x="5" y="-10"/>
|
||||
@ -1080,6 +897,115 @@
|
||||
<delta pt="19" x="0" y="0"/>
|
||||
</tuple>
|
||||
</glyphVariations>
|
||||
<glyphVariations glyph="glyph00006">
|
||||
<tuple>
|
||||
<coord axis="wght" value="1.0"/>
|
||||
<delta pt="0" x="0" y="-15"/>
|
||||
<delta pt="1" x="10" y="-15"/>
|
||||
<delta pt="2" x="10" y="15"/>
|
||||
<delta pt="3" x="0" y="15"/>
|
||||
<delta pt="4" x="-25" y="-10"/>
|
||||
<delta pt="5" x="10" y="-10"/>
|
||||
<delta pt="6" x="10" y="10"/>
|
||||
<delta pt="7" x="-25" y="10"/>
|
||||
<delta pt="8" x="0" y="0"/>
|
||||
<delta pt="9" x="0" y="0"/>
|
||||
<delta pt="10" x="0" y="0"/>
|
||||
<delta pt="11" x="0" y="0"/>
|
||||
</tuple>
|
||||
<tuple>
|
||||
<coord axis="0000" value="-1.0"/>
|
||||
<delta pt="0" x="0" y="0"/>
|
||||
<delta pt="1" x="0" y="0"/>
|
||||
<delta pt="2" x="0" y="0"/>
|
||||
<delta pt="3" x="0" y="0"/>
|
||||
<delta pt="4" x="0" y="229"/>
|
||||
<delta pt="5" x="0" y="229"/>
|
||||
<delta pt="6" x="0" y="0"/>
|
||||
<delta pt="7" x="0" y="0"/>
|
||||
<delta pt="8" x="0" y="0"/>
|
||||
<delta pt="9" x="0" y="0"/>
|
||||
<delta pt="10" x="0" y="0"/>
|
||||
<delta pt="11" x="0" y="0"/>
|
||||
</tuple>
|
||||
<tuple>
|
||||
<coord axis="0002" value="1.0"/>
|
||||
<delta pt="0" x="0" y="202"/>
|
||||
<delta pt="1" x="0" y="202"/>
|
||||
<delta pt="2" x="0" y="202"/>
|
||||
<delta pt="3" x="0" y="202"/>
|
||||
<delta pt="4" x="0" y="0"/>
|
||||
<delta pt="5" x="0" y="0"/>
|
||||
<delta pt="6" x="0" y="0"/>
|
||||
<delta pt="7" x="0" y="0"/>
|
||||
<delta pt="8" x="0" y="0"/>
|
||||
<delta pt="9" x="0" y="0"/>
|
||||
<delta pt="10" x="0" y="0"/>
|
||||
<delta pt="11" x="0" y="0"/>
|
||||
</tuple>
|
||||
<tuple>
|
||||
<coord axis="0001" value="1.0"/>
|
||||
<delta pt="0" x="0" y="0"/>
|
||||
<delta pt="1" x="0" y="0"/>
|
||||
<delta pt="2" x="0" y="0"/>
|
||||
<delta pt="3" x="0" y="0"/>
|
||||
<delta pt="4" x="0" y="6"/>
|
||||
<delta pt="5" x="0" y="6"/>
|
||||
<delta pt="6" x="0" y="0"/>
|
||||
<delta pt="7" x="0" y="0"/>
|
||||
<delta pt="8" x="0" y="0"/>
|
||||
<delta pt="9" x="0" y="0"/>
|
||||
<delta pt="10" x="0" y="0"/>
|
||||
<delta pt="11" x="0" y="0"/>
|
||||
</tuple>
|
||||
<tuple>
|
||||
<coord axis="0003" value="-1.0"/>
|
||||
<delta pt="0" x="0" y="0"/>
|
||||
<delta pt="1" x="-50" y="0"/>
|
||||
<delta pt="2" x="-50" y="0"/>
|
||||
<delta pt="3" x="0" y="0"/>
|
||||
<delta pt="4" x="0" y="0"/>
|
||||
<delta pt="5" x="0" y="0"/>
|
||||
<delta pt="6" x="0" y="0"/>
|
||||
<delta pt="7" x="0" y="0"/>
|
||||
<delta pt="8" x="0" y="0"/>
|
||||
<delta pt="9" x="0" y="0"/>
|
||||
<delta pt="10" x="0" y="0"/>
|
||||
<delta pt="11" x="0" y="0"/>
|
||||
</tuple>
|
||||
<tuple>
|
||||
<coord axis="wght" value="1.0"/>
|
||||
<coord axis="0000" value="-1.0"/>
|
||||
<delta pt="0" x="0" y="0"/>
|
||||
<delta pt="1" x="0" y="0"/>
|
||||
<delta pt="2" x="0" y="0"/>
|
||||
<delta pt="3" x="0" y="0"/>
|
||||
<delta pt="4" x="0" y="0"/>
|
||||
<delta pt="5" x="0" y="0"/>
|
||||
<delta pt="6" x="0" y="0"/>
|
||||
<delta pt="7" x="0" y="0"/>
|
||||
<delta pt="8" x="0" y="0"/>
|
||||
<delta pt="9" x="0" y="0"/>
|
||||
<delta pt="10" x="0" y="0"/>
|
||||
<delta pt="11" x="0" y="0"/>
|
||||
</tuple>
|
||||
<tuple>
|
||||
<coord axis="wght" value="1.0"/>
|
||||
<coord axis="0002" value="1.0"/>
|
||||
<delta pt="0" x="0" y="0"/>
|
||||
<delta pt="1" x="0" y="0"/>
|
||||
<delta pt="2" x="0" y="0"/>
|
||||
<delta pt="3" x="0" y="0"/>
|
||||
<delta pt="4" x="0" y="0"/>
|
||||
<delta pt="5" x="0" y="0"/>
|
||||
<delta pt="6" x="0" y="0"/>
|
||||
<delta pt="7" x="0" y="0"/>
|
||||
<delta pt="8" x="0" y="0"/>
|
||||
<delta pt="9" x="0" y="0"/>
|
||||
<delta pt="10" x="0" y="0"/>
|
||||
<delta pt="11" x="0" y="0"/>
|
||||
</tuple>
|
||||
</glyphVariations>
|
||||
<glyphVariations glyph="glyph00010">
|
||||
<tuple>
|
||||
<coord axis="wght" value="1.0"/>
|
||||
|
Binary file not shown.
@ -9,7 +9,7 @@ DATA_DIR = os.path.join(CURR_DIR, "data")
|
||||
|
||||
|
||||
class VarCompositeTest(unittest.TestCase):
|
||||
def test_trim_varComposite_glyph(self):
|
||||
def test_basic(self):
|
||||
font_path = os.path.join(DATA_DIR, "..", "..", "data", "varc-ac00-ac01.ttf")
|
||||
font = TTFont(font_path)
|
||||
varc = font["VARC"]
|
||||
@ -18,10 +18,10 @@ class VarCompositeTest(unittest.TestCase):
|
||||
"uniAC00",
|
||||
"uniAC01",
|
||||
"glyph00003",
|
||||
"glyph00004",
|
||||
"glyph00005",
|
||||
"glyph00006",
|
||||
"glyph00007",
|
||||
"glyph00008",
|
||||
"glyph00009",
|
||||
]
|
||||
|
||||
font_path = os.path.join(DATA_DIR, "..", "..", "data", "varc-6868.ttf")
|
||||
@ -31,11 +31,11 @@ class VarCompositeTest(unittest.TestCase):
|
||||
assert varc.table.Coverage.glyphs == [
|
||||
"uni6868",
|
||||
"glyph00002",
|
||||
"glyph00003",
|
||||
"glyph00004",
|
||||
"glyph00005",
|
||||
"glyph00007",
|
||||
]
|
||||
|
||||
def test_varComposite_basic(self):
|
||||
def test_roundtrip(self):
|
||||
font_path = os.path.join(DATA_DIR, "..", "..", "data", "varc-ac00-ac01.ttf")
|
||||
font = TTFont(font_path)
|
||||
tables = [
|
||||
|
@ -226,7 +226,7 @@ class TTGlyphSetTest(object):
|
||||
(
|
||||
"addVarComponent",
|
||||
(
|
||||
"glyph00007",
|
||||
"glyph00003",
|
||||
DecomposedTransform(
|
||||
translateX=0,
|
||||
translateY=0,
|
||||
@ -244,7 +244,7 @@ class TTGlyphSetTest(object):
|
||||
(
|
||||
"addVarComponent",
|
||||
(
|
||||
"glyph00003",
|
||||
"glyph00005",
|
||||
DecomposedTransform(
|
||||
translateX=0,
|
||||
translateY=0,
|
||||
|
Loading…
x
Reference in New Issue
Block a user