the gasp portion of patch 1675210: support for ClearType
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@529 4cde692c-a291-49d1-8350-778aa11640f8
This commit is contained in:
parent
212ea14706
commit
b018bf7120
@ -3,6 +3,8 @@ import struct
|
|||||||
from fontTools.misc.textTools import safeEval
|
from fontTools.misc.textTools import safeEval
|
||||||
|
|
||||||
|
|
||||||
|
GASP_SYMMETRIC_GRIDFIT = 0x0008
|
||||||
|
GASP_SYMMETRIC_SMOOTHING = 0x0004
|
||||||
GASP_DOGRAY = 0x0002
|
GASP_DOGRAY = 0x0002
|
||||||
GASP_GRIDFIT = 0x0001
|
GASP_GRIDFIT = 0x0001
|
||||||
|
|
||||||
@ -10,7 +12,7 @@ class table__g_a_s_p(DefaultTable.DefaultTable):
|
|||||||
|
|
||||||
def decompile(self, data, ttFont):
|
def decompile(self, data, ttFont):
|
||||||
self.version, numRanges = struct.unpack(">HH", data[:4])
|
self.version, numRanges = struct.unpack(">HH", data[:4])
|
||||||
assert self.version == 0, "unknown 'gasp' format: %s" % self.version
|
assert 0 <= self.version <= 1, "unknown 'gasp' format: %s" % self.version
|
||||||
data = data[4:]
|
data = data[4:]
|
||||||
self.gaspRange = {}
|
self.gaspRange = {}
|
||||||
for i in range(numRanges):
|
for i in range(numRanges):
|
||||||
@ -20,12 +22,16 @@ class table__g_a_s_p(DefaultTable.DefaultTable):
|
|||||||
assert not data, "too much data"
|
assert not data, "too much data"
|
||||||
|
|
||||||
def compile(self, ttFont):
|
def compile(self, ttFont):
|
||||||
|
version = 0 # ignore self.version
|
||||||
numRanges = len(self.gaspRange)
|
numRanges = len(self.gaspRange)
|
||||||
data = struct.pack(">HH", 0, numRanges)
|
data = []
|
||||||
items = self.gaspRange.items()
|
items = self.gaspRange.items()
|
||||||
items.sort()
|
items.sort()
|
||||||
for rangeMaxPPEM, rangeGaspBehavior in items:
|
for rangeMaxPPEM, rangeGaspBehavior in items:
|
||||||
data = data + struct.pack(">HH", rangeMaxPPEM, rangeGaspBehavior)
|
data = data + struct.pack(">HH", rangeMaxPPEM, rangeGaspBehavior)
|
||||||
|
if rangeGaspBehavior & ~(GASP_GRIDFIT | GASP_DOGRAY):
|
||||||
|
version = 1
|
||||||
|
data = struct.pack(">HH", version, numRanges) + data
|
||||||
return data
|
return data
|
||||||
|
|
||||||
def toXML(self, writer, ttFont):
|
def toXML(self, writer, ttFont):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user