private static void OptionallyParseTables(IReadOnlyDictionary <string, TrueTypeHeaderTable> tables, TrueTypeDataBytes data, TableRegister.Builder tableRegister) { // cmap if (tables.TryGetValue(TrueTypeHeaderTable.Cmap, out var cmap)) { tableRegister.CMapTable = CMapTable.Load(data, cmap, tableRegister); } // hmtx if (tables.TryGetValue(TrueTypeHeaderTable.Hmtx, out var hmtxHeaderTable)) { tableRegister.HorizontalMetricsTable = HorizontalMetricsTable.Load(data, hmtxHeaderTable, tableRegister); } // name if (tables.TryGetValue(TrueTypeHeaderTable.Name, out var nameHeaderTable)) { // TODO: Not important } // os2 // kern if (tables.TryGetValue(TrueTypeHeaderTable.Kern, out var kernHeaderTable)) { tableRegister.KerningTable = KerningTable.Load(data, kernHeaderTable); } }
public void ShouldReturnDefaultValueWhenTableCouldNotBeFound() { var writer = new BinaryWriter(); writer.WriteTrueTypeFileHeader(); using (var stream = writer.GetStream()) { var table = KerningTable.Load(new FontReader(stream)); Assert.NotNull(table); } }
private static void OptionallyParseTables(IReadOnlyDictionary <string, TrueTypeHeaderTable> tables, TrueTypeDataBytes data, TableRegister.Builder tableRegister) { // cmap if (tables.TryGetValue(TrueTypeHeaderTable.Cmap, out var cmap)) { tableRegister.CMapTable = TableParser.Parse <CMapTable>(cmap, data, tableRegister); } // hmtx if (tables.TryGetValue(TrueTypeHeaderTable.Hmtx, out var hmtxHeaderTable)) { tableRegister.HorizontalMetricsTable = TableParser.Parse <HorizontalMetricsTable>(hmtxHeaderTable, data, tableRegister); } // kern if (tables.TryGetValue(TrueTypeHeaderTable.Kern, out var kernHeaderTable)) { tableRegister.KerningTable = KerningTable.Load(data, kernHeaderTable); } }