[varLib.merger] Use new API for faster interpolation in Instancer
This commit is contained in:
parent
5a5898c824
commit
455fc87081
@ -1059,7 +1059,7 @@ class InstancerMerger(AligningMerger):
|
|||||||
Merger.__init__(self, font)
|
Merger.__init__(self, font)
|
||||||
self.model = model
|
self.model = model
|
||||||
self.location = location
|
self.location = location
|
||||||
self.scalars = model.getScalars(location)
|
self.masterScalars = model.getMasterScalars(location)
|
||||||
|
|
||||||
|
|
||||||
@InstancerMerger.merger(ot.CaretValue)
|
@InstancerMerger.merger(ot.CaretValue)
|
||||||
@ -1067,8 +1067,10 @@ def merge(merger, self, lst):
|
|||||||
assert self.Format == 1
|
assert self.Format == 1
|
||||||
Coords = [a.Coordinate for a in lst]
|
Coords = [a.Coordinate for a in lst]
|
||||||
model = merger.model
|
model = merger.model
|
||||||
scalars = merger.scalars
|
masterScalars = merger.masterScalars
|
||||||
self.Coordinate = otRound(model.interpolateFromMastersAndScalars(Coords, scalars))
|
self.Coordinate = otRound(
|
||||||
|
model.interpolateFromMastersAndMasterScalars(Coords, masterScalars)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@InstancerMerger.merger(ot.Anchor)
|
@InstancerMerger.merger(ot.Anchor)
|
||||||
@ -1077,15 +1079,19 @@ def merge(merger, self, lst):
|
|||||||
XCoords = [a.XCoordinate for a in lst]
|
XCoords = [a.XCoordinate for a in lst]
|
||||||
YCoords = [a.YCoordinate for a in lst]
|
YCoords = [a.YCoordinate for a in lst]
|
||||||
model = merger.model
|
model = merger.model
|
||||||
scalars = merger.scalars
|
masterScalars = merger.masterScalars
|
||||||
self.XCoordinate = otRound(model.interpolateFromMastersAndScalars(XCoords, scalars))
|
self.XCoordinate = otRound(
|
||||||
self.YCoordinate = otRound(model.interpolateFromMastersAndScalars(YCoords, scalars))
|
model.interpolateFromMastersAndMasterScalars(XCoords, masterScalars)
|
||||||
|
)
|
||||||
|
self.YCoordinate = otRound(
|
||||||
|
model.interpolateFromMastersAndMasterScalars(YCoords, masterScalars)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@InstancerMerger.merger(otBase.ValueRecord)
|
@InstancerMerger.merger(otBase.ValueRecord)
|
||||||
def merge(merger, self, lst):
|
def merge(merger, self, lst):
|
||||||
model = merger.model
|
model = merger.model
|
||||||
scalars = merger.scalars
|
masterScalars = merger.masterScalars
|
||||||
# TODO Handle differing valueformats
|
# TODO Handle differing valueformats
|
||||||
for name, tableName in [
|
for name, tableName in [
|
||||||
("XAdvance", "XAdvDevice"),
|
("XAdvance", "XAdvDevice"),
|
||||||
@ -1097,7 +1103,9 @@ def merge(merger, self, lst):
|
|||||||
|
|
||||||
if hasattr(self, name):
|
if hasattr(self, name):
|
||||||
values = [getattr(a, name, 0) for a in lst]
|
values = [getattr(a, name, 0) for a in lst]
|
||||||
value = otRound(model.interpolateFromMastersAndScalars(values, scalars))
|
value = otRound(
|
||||||
|
model.interpolateFromMastersAndMasterScalars(values, masterScalars)
|
||||||
|
)
|
||||||
setattr(self, name, value)
|
setattr(self, name, value)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user