コード例 #1
0
 public static UnicodeRange Read(BinaryReaderFont reader)
 {
     return(new UnicodeRange {
         startUnicodeValue = reader.ReadUInt24(),
         additionalCount = reader.ReadByte()
     });
 }
コード例 #2
0
 public static UVSMapping Read(BinaryReaderFont reader)
 {
     return(new UVSMapping {
         unicodeValue = reader.ReadUInt24(),
         glyphID = reader.ReadUInt16()
     });
 }
コード例 #3
0
        public void ReadOffset(BinaryReaderFont reader, int index, out int offset0, out int offset1)
        {
            if (index < 0 || index >= count - 1)
            {
                offset0 = 0;
                offset1 = 0;
                return;
            }
            switch (offSize)
            {
            case 1:
                reader.Position = position + index;
                offset0         = reader.ReadByte();
                offset1         = reader.ReadByte();
                return;

            case 2:
                reader.Position = position + index * 2;
                offset0         = reader.ReadUInt16();
                offset1         = reader.ReadUInt16();
                return;

            case 3:
                reader.Position = position + index * 3;
                offset0         = reader.ReadUInt24();
                offset1         = reader.ReadUInt24();
                return;

            case 4:
                reader.Position = position + index * 4;
                offset0         = reader.ReadInt32();
                offset1         = reader.ReadInt32();
                return;
            }
            offset0 = 0;
            offset1 = 0;
        }
コード例 #4
0
        public static VariationSelector Read(BinaryReaderFont reader, long start)
        {
            VariationSelector value = new VariationSelector {
                varSelector         = reader.ReadUInt24(),
                defaultUVSOffset    = reader.ReadUInt32(),
                nonDefaultUVSOffset = reader.ReadUInt32()
            };
            long position = reader.Position;

            if (value.defaultUVSOffset != 0)
            {
                reader.Position  = start + value.defaultUVSOffset;
                value.defaultUVS = DefaultUVS.Read(reader);
            }
            if (value.nonDefaultUVSOffset != 0)
            {
                reader.Position     = start + value.nonDefaultUVSOffset;
                value.nonDefaultUVS = NonDefaultUVS.Read(reader);
            }
            reader.Position = position;
            return(value);
        }