public static UnicodeRange Read(BinaryReaderFont reader) { return(new UnicodeRange { startUnicodeValue = reader.ReadUInt24(), additionalCount = reader.ReadByte() }); }
public static UVSMapping Read(BinaryReaderFont reader) { return(new UVSMapping { unicodeValue = reader.ReadUInt24(), glyphID = reader.ReadUInt16() }); }
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; }
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); }