예제 #1
0
        public static KernSubtable FromReader(FontReader reader)
        {
            var version  = reader.ReadUInt16BigEndian();
            var length   = reader.ReadUInt16BigEndian();
            var format   = reader.ReadByte();
            var coverage = reader.ReadBitsBigEndian(1);


            var direction     = coverage.Get(0) ? Direction.Horizontal : Direction.Vertical;
            var values        = coverage.Get(1) ? Values.Minimum : Values.Kerning;
            var isCrossStream = coverage.Get(2);
            var isOverride    = coverage.Get(3);

            // The only format that is properly interpreted by Windows
            Format0 format0 = null;

            if (format == 0)
            {
                format0 = Format0.FromReader(reader);
            }

            return(new KernSubtable(version, length, format, direction, values, isCrossStream, isOverride, format0));
        }
예제 #2
0
 private KernSubtable(ushort version, ushort length, byte format, Direction direction, Values values, bool isCrossStream, bool isOverride, Format0 format0)
 {
     this.Version       = version;
     this.Length        = length;
     this.Format        = format;
     this.Direction     = direction;
     this.Values        = values;
     this.IsCrossStream = isCrossStream;
     this.IsOverride    = isOverride;
     this.Format0       = format0;
 }