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));
            }
Exemple #2
0
            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;
 }
Exemple #4
0
 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;
 }
Exemple #6
0
 public static MarkArrayTable CreateFrom(BinaryReader reader, long beginAt)
 {
     reader.BaseStream.Seek(beginAt, SeekOrigin.Begin);
     //
     var markArrTable = new MarkArrayTable();
     markArrTable.ReadFrom(reader);
     return markArrTable;
 }