public ttf(BigEndianBinaryRaader reader) { tables = new Dictionary <string, TableEntity>(); sfntVersion = reader.ReadUInt32(); numTables = reader.ReadUInt16(); searchRange = reader.ReadUInt16(); entrySelector = reader.ReadUInt16(); rangeShift = reader.ReadUInt16(); for (ushort i = 0; i < numTables; i++) { string tag = reader.ReadTag(); switch (tag) { case "maxp": tables.Add(tag, new Maxp(reader)); break; case "name": tables.Add(tag, new Name(reader)); break; default: reader.BaseStream.Position += 12; break; } } }
public Maxp(BigEndianBinaryRaader reader) : base(reader) { long origPos = reader.BaseStream.Position; reader.BaseStream.Position = offsetPos; version = reader.ReadUInt32(); numGlyphs = reader.ReadUInt16(); if (version == 0x00010000) { maxPoints = reader.ReadUInt16(); maxContours = reader.ReadUInt16(); maxCompositePoints = reader.ReadUInt16(); maxCompositeContours = reader.ReadUInt16(); maxZones = reader.ReadUInt16(); maxTwilightPoints = reader.ReadUInt16(); maxStorage = reader.ReadUInt16(); maxFunctionDefs = reader.ReadUInt16(); maxInstructionDefs = reader.ReadUInt16(); maxStackElements = reader.ReadUInt16(); maxSizeOfInstructions = reader.ReadUInt16(); maxComponentElements = reader.ReadUInt16(); maxComponentDepth = reader.ReadUInt16(); } reader.BaseStream.Position = origPos; }
protected void endItit(BigEndianBinaryRaader reader) { reader.BaseStream.Position = this.origPos; }
protected void startInit(BigEndianBinaryRaader reader) { long origPos = reader.BaseStream.Position; reader.BaseStream.Position = this.offsetPos; }
public TableEntity(BigEndianBinaryRaader reader) { checkSum = reader.ReadUInt32(); offsetPos = reader.ReadUInt32(); length = reader.ReadUInt32(); }