public void Read() { try { HorizontalHeaderTable hhea = _fontData.hhea; MaximumProfileTable maxp = _fontData.maxp; if (hhea != null && maxp != null) { int numMetrics = hhea.numberOfHMetrics; //->NumberOfHMetrics(); int numLsbs = maxp.numGlyphs - numMetrics; Debug.Assert(numMetrics != 0); Debug.Assert(numLsbs >= 0); metrics = new HorizontalMetrics[numMetrics]; for (int idx = 0; idx < numMetrics; idx++) { metrics[idx] = new HorizontalMetrics(_fontData); } if (numLsbs > 0) { leftSideBearing = new FWord[numLsbs]; for (int idx = 0; idx < numLsbs; idx++) { leftSideBearing[idx] = _fontData.ReadFWord(); } } } } catch (Exception ex) { throw new InvalidOperationException(PSSR.ErrorReadingFontData, ex); } }
public void Read() { try { HorizontalHeaderTable hhea = _fontData.hhea; MaximumProfileTable maxp = _fontData.maxp; if (hhea != null && maxp != null) { int numMetrics = hhea.numberOfHMetrics; //->NumberOfHMetrics(); int numLsbs = maxp.numGlyphs - numMetrics; Debug.Assert(numMetrics != 0); Debug.Assert(numLsbs >= 0); metrics = new HorizontalMetrics[numMetrics]; for (int idx = 0; idx < numMetrics; idx++) metrics[idx] = new HorizontalMetrics(_fontData); if (numLsbs > 0) { leftSideBearing = new FWord[numLsbs]; for (int idx = 0; idx < numLsbs; idx++) leftSideBearing[idx] = _fontData.ReadFWord(); } } } catch (Exception ex) { throw new InvalidOperationException(PSSR.ErrorReadingFontData, ex); } }