public OffsetTable[] ReadOffsetTables(CollectionHeader header) { var tables = new OffsetTable[header.NumFonts]; for (uint i = 0; i < header.NumFonts; i++) { BaseStream.Position = header.OffsetTable[i]; tables[i] = ReadOffsetTable(); } return(tables); }
public TableRecord[] ReadTableRecords(OffsetTable offsets) { BaseStream.Position = offsets.TablesStart; var tables = new TableRecord[offsets.NumTables]; for (int i = 0; i < offsets.NumTables; i++) { tables[i] = ReadTableRecord(); } return(tables); }
public OpenTypeFont(OffsetTable offsets, OpenTypeFontReader reader, bool lazyLoad = true) { offsetTable = offsets; tables = reader.ReadTableRecords(offsetTable); nameTableRecord = tables.Select(t => new TableRecord?(t)) .Where(t => t.Value.TableTag == OpenTypeTag.NAME).FirstOrDefault(); if (lazyLoad) { Reader = reader; } else { LoadAllTables(reader); } }