public static MaxpTable Read(BinaryReaderFont reader) { MaxpTable value = new MaxpTable { version = reader.ReadFixed(), numGlyphs = reader.ReadUInt16() }; if (value.version >= 0x10000) { value.maxPoints = reader.ReadUInt16(); value.maxContours = reader.ReadUInt16(); value.maxCompositePoints = reader.ReadUInt16(); value.maxCompositeContours = reader.ReadUInt16(); value.maxZones = reader.ReadUInt16(); value.maxTwilightPoints = reader.ReadUInt16(); value.maxStorage = reader.ReadUInt16(); value.maxFunctionDefs = reader.ReadUInt16(); value.maxInstructionDefs = reader.ReadUInt16(); value.maxStackElements = reader.ReadUInt16(); value.maxSizeOfInstructions = reader.ReadUInt16(); value.maxComponentElements = reader.ReadUInt16(); value.maxComponentDepth = reader.ReadUInt16(); } return(value); }
public static PostTable Read(BinaryReaderFont reader, TableRecord record) { PostTable value = new PostTable { version = reader.ReadFixed(), italicAngle = reader.ReadFixed(), underlinePosition = reader.ReadFWORD(), underlineThickness = reader.ReadFWORD(), isFixedPitch = reader.ReadUInt32(), minMemType42 = reader.ReadUInt32(), maxMemType42 = reader.ReadUInt32(), minMemType1 = reader.ReadUInt32(), maxMemType1 = reader.ReadUInt32(), }; if (value.version == 0x20000) { value.numGlyphs = reader.ReadUInt16(); value.glyphNameIndex = reader.ReadUInt16Array(value.numGlyphs); int remain = (int)record.length - 34; remain -= value.numGlyphs * 2; List <string> names = new List <string>(); while (remain > 0) { byte nameLength = reader.ReadByte(); if (nameLength == 0) { break; } string name = reader.ReadString(nameLength); remain -= nameLength + 1; names.Add(name); } value.names = names.ToArray(); } return(value); }
public static VheaTable Read(BinaryReaderFont reader) { uint version = reader.ReadFixed(); VheaTable value = null; if (version == 0x10000) { value = VerticalHeader1.Read(reader); value.version = version; } else if (version == 0x18000) { value = VerticalHeader1_1.Read(reader); value.version = version; } return(value); }
public static HeadTable Read(BinaryReaderFont reader) { return(new HeadTable { majorVersion = reader.ReadUInt16(), minorVersion = reader.ReadUInt16(), fontRevision = reader.ReadFixed(), checkSumAdjustment = reader.ReadUInt32(), magicNumber = reader.ReadUInt32(), flags = (FontHeaderFlags)reader.ReadUInt16(), unitsPerEm = reader.ReadUInt16(), created = reader.ReadDateTime(), modified = reader.ReadDateTime(), xMin = reader.ReadInt16(), yMin = reader.ReadInt16(), xMax = reader.ReadInt16(), yMax = reader.ReadInt16(), macStyle = (FontHeaderMacStyle)reader.ReadUInt16(), lowestRecPPEM = reader.ReadUInt16(), fontDirectionHint = reader.ReadInt16(), indexToLocFormat = reader.ReadInt16(), glyphDataFormat = reader.ReadInt16() }); }