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:
jvr 2002-05-10 19:02:04 +00:00
parent 9f1e14bec9
commit 1940dfbe0e
2 changed files with 49 additions and 6 deletions

View File

@ -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)])

View File

@ -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)