checking in last edits to the old OT support; this stuff will be replaced by brand new code soon.
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@205 4cde692c-a291-49d1-8350-778aa11640f8
This commit is contained in:
parent
9f1e14bec9
commit
1940dfbe0e
@ -357,7 +357,13 @@ class ChainContextSubst:
|
|||||||
self.lookahead = otCommon.unpackCoverageArray(lookaheadCoverage)
|
self.lookahead = otCommon.unpackCoverageArray(lookaheadCoverage)
|
||||||
|
|
||||||
substCount = reader.readUShort()
|
substCount = reader.readUShort()
|
||||||
self.substitutions = reader.readTableArray(substCount, SubstLookupRecord, otFont)
|
self.substitutions = []
|
||||||
|
for i in range(substCount):
|
||||||
|
lookupRecord = SubstLookupRecord()
|
||||||
|
lookupRecord.decompile(reader, otFont)
|
||||||
|
self.substitutions.append(lookupRecord)
|
||||||
|
|
||||||
|
# print "XXX", [len(x) for x in self.backtrack], self.substitutions
|
||||||
|
|
||||||
def compile(self, writer, otFont):
|
def compile(self, writer, otFont):
|
||||||
writer.writeUShort(self.format)
|
writer.writeUShort(self.format)
|
||||||
@ -391,10 +397,41 @@ class ChainContextSubst:
|
|||||||
writer.writeTableArray(lookahead, otFont)
|
writer.writeTableArray(lookahead, otFont)
|
||||||
|
|
||||||
writer.writeUShort(len(self.substitutions))
|
writer.writeUShort(len(self.substitutions))
|
||||||
writer.writeTableArray(self.substitutions, otFont)
|
for lookupRecord in self.substitutions:
|
||||||
|
lookupRecord.compile(writer, otFont)
|
||||||
|
|
||||||
def toXML(self, xmlWriter, otFont):
|
def toXML(self, xmlWriter, otFont):
|
||||||
xmlWriter.comment("NotImplemented")
|
# XXXX this is for format 3?!
|
||||||
|
xmlWriter.begintag("Backtrack")
|
||||||
|
xmlWriter.newline()
|
||||||
|
for g in self.backtrack:
|
||||||
|
xmlWriter.simpletag("glyph", values=",".join(g))
|
||||||
|
xmlWriter.newline()
|
||||||
|
xmlWriter.endtag("Backtrack")
|
||||||
|
xmlWriter.newline()
|
||||||
|
|
||||||
|
xmlWriter.begintag("Input")
|
||||||
|
xmlWriter.newline()
|
||||||
|
for g in self.input:
|
||||||
|
xmlWriter.simpletag("glyph", values=",".join(g))
|
||||||
|
xmlWriter.newline()
|
||||||
|
xmlWriter.endtag("Input")
|
||||||
|
xmlWriter.newline()
|
||||||
|
|
||||||
|
xmlWriter.begintag("Lookahead")
|
||||||
|
xmlWriter.newline()
|
||||||
|
for g in self.lookahead:
|
||||||
|
xmlWriter.simpletag("glyph", values=",".join(g))
|
||||||
|
xmlWriter.newline()
|
||||||
|
xmlWriter.endtag("Lookahead")
|
||||||
|
xmlWriter.newline()
|
||||||
|
|
||||||
|
xmlWriter.begintag("Subst")
|
||||||
|
xmlWriter.newline()
|
||||||
|
for subst in self.substitutions:
|
||||||
|
subst.toXML(xmlWriter, otFont)
|
||||||
|
xmlWriter.newline()
|
||||||
|
xmlWriter.endtag("Subst")
|
||||||
xmlWriter.newline()
|
xmlWriter.newline()
|
||||||
|
|
||||||
|
|
||||||
@ -405,6 +442,7 @@ lookupTypeClasses = {
|
|||||||
4: LigatureSubst,
|
4: LigatureSubst,
|
||||||
5: ContextSubst,
|
5: ContextSubst,
|
||||||
6: ChainContextSubst,
|
6: ChainContextSubst,
|
||||||
|
# 7: ExtensionSubst, # ugh...
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -421,4 +459,9 @@ class SubstLookupRecord:
|
|||||||
def compile(self, writer, otFont):
|
def compile(self, writer, otFont):
|
||||||
writer.writeUShort(self.sequenceIndex)
|
writer.writeUShort(self.sequenceIndex)
|
||||||
writer.writeUShort(self.lookupListIndex)
|
writer.writeUShort(self.lookupListIndex)
|
||||||
|
|
||||||
|
def toXML(self, xmlWriter, otFont):
|
||||||
|
xmlWriter.simpletag("SubstLookupRecord",
|
||||||
|
[('sequenceIndex', self.sequenceIndex),
|
||||||
|
('lookupListIndex', self.lookupListIndex)])
|
||||||
|
|
||||||
|
@ -212,7 +212,9 @@ class LookupList:
|
|||||||
for i in range(len(self.lookup)):
|
for i in range(len(self.lookup)):
|
||||||
xmlWriter.newline()
|
xmlWriter.newline()
|
||||||
lookupTable = self.lookup[i]
|
lookupTable = self.lookup[i]
|
||||||
xmlWriter.begintag("LookupTable", index=i)
|
xmlWriter.begintag("LookupTable",
|
||||||
|
[("index", i), ("LookupType", lookupTable.lookupType),
|
||||||
|
("LookupFlag", hex(lookupTable.lookupFlag))])
|
||||||
xmlWriter.newline()
|
xmlWriter.newline()
|
||||||
lookupTable.toXML(xmlWriter, otFont)
|
lookupTable.toXML(xmlWriter, otFont)
|
||||||
xmlWriter.endtag("LookupTable")
|
xmlWriter.endtag("LookupTable")
|
||||||
@ -249,8 +251,6 @@ class LookupTable:
|
|||||||
return "<%s LookupTable at %x>" % (self.lookupTypeName, id(self))
|
return "<%s LookupTable at %x>" % (self.lookupTypeName, id(self))
|
||||||
|
|
||||||
def toXML(self, xmlWriter, otFont):
|
def toXML(self, xmlWriter, otFont):
|
||||||
xmlWriter.simpletag("LookupFlag", value=hex(self.lookupFlag))
|
|
||||||
xmlWriter.newline()
|
|
||||||
for subTable in self.subTables:
|
for subTable in self.subTables:
|
||||||
name = subTable.__class__.__name__
|
name = subTable.__class__.__name__
|
||||||
xmlWriter.begintag(name)
|
xmlWriter.begintag(name)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user