public static LookupType4Format1SubTable Load(BigEndianBinaryReader reader, long offset, LookupFlags lookupFlags) { // MarkBasePosFormat1 Subtable. // +--------------------+---------------------------------+------------------------------------------------------+ // | Type | Name | Description | // +====================+=================================+======================================================+ // | uint16 | posFormat | Format identifier: format = 1 | // +--------------------+---------------------------------+------------------------------------------------------+ // | Offset16 | markCoverageOffset | Offset to markCoverage table, | // | | | from beginning of MarkBasePos subtable. | // +--------------------+---------------------------------+------------------------------------------------------+ // | Offset16 | baseCoverageOffset | Offset to baseCoverage table, | // | | | from beginning of MarkBasePos subtable. | // +--------------------+---------------------------------+------------------------------------------------------+ // | uint16 | markClassCount | Number of classes defined for marks. | // +--------------------+---------------------------------+------------------------------------------------------+ // | Offset16 | markArrayOffset | Offset to MarkArray table, | // | | | from beginning of MarkBasePos subtable. | // +--------------------+---------------------------------+------------------------------------------------------+ // | Offset16 | baseArrayOffset | Offset to BaseArray table, | // | | | from beginning of MarkBasePos subtable. | // +--------------------+---------------------------------+------------------------------------------------------+ ushort markCoverageOffset = reader.ReadOffset16(); ushort baseCoverageOffset = reader.ReadOffset16(); ushort markClassCount = reader.ReadUInt16(); ushort markArrayOffset = reader.ReadOffset16(); ushort baseArrayOffset = reader.ReadOffset16(); var markCoverage = CoverageTable.Load(reader, offset + markCoverageOffset); var baseCoverage = CoverageTable.Load(reader, offset + baseCoverageOffset); var markArrayTable = new MarkArrayTable(reader, offset + markArrayOffset); var baseArrayTable = new BaseArrayTable(reader, offset + baseArrayOffset, markClassCount); return(new LookupType4Format1SubTable(markCoverage, baseCoverage, markArrayTable, baseArrayTable, lookupFlags)); }
public static MarkArrayTable CreateFrom(BinaryReader reader, long beginAt) { reader.BaseStream.Seek(beginAt, SeekOrigin.Begin); // var markArrTable = new MarkArrayTable(); markArrTable.ReadFrom(reader); return(markArrTable); }
public LookupType4Format1SubTable( CoverageTable markCoverage, CoverageTable baseCoverage, MarkArrayTable markArrayTable, BaseArrayTable baseArrayTable, LookupFlags lookupFlags) : base(lookupFlags) { this.markCoverage = markCoverage; this.baseCoverage = baseCoverage; this.markArrayTable = markArrayTable; this.baseArrayTable = baseArrayTable; }
public LookupType5Format1SubTable( CoverageTable markCoverage, CoverageTable ligatureCoverage, MarkArrayTable markArrayTable, LigatureArrayTable ligatureArrayTable, LookupFlags lookupFlags) : base(lookupFlags) { this.markCoverage = markCoverage; this.ligatureCoverage = ligatureCoverage; this.markArrayTable = markArrayTable; this.ligatureArrayTable = ligatureArrayTable; }
public LookupType6Format1SubTable( CoverageTable mark1Coverage, CoverageTable mark2Coverage, MarkArrayTable mark1ArrayTable, Mark2ArrayTable mark2ArrayTable, LookupFlags lookupFlags) : base(lookupFlags) { this.mark1Coverage = mark1Coverage; this.mark2Coverage = mark2Coverage; this.mark1ArrayTable = mark1ArrayTable; this.mark2ArrayTable = mark2ArrayTable; }
public static MarkArrayTable CreateFrom(BinaryReader reader, long beginAt) { reader.BaseStream.Seek(beginAt, SeekOrigin.Begin); // var markArrTable = new MarkArrayTable(); markArrTable.ReadFrom(reader); return markArrTable; }