glyphPath method

  1. @override
Path? glyphPath(
  1. int glyphId
)
override

Implementation

@override
Path? glyphPath(int glyphId) {
  if (_pathCache.containsKey(glyphId)) return _pathCache[glyphId];
  Path? path;
  try {
    final _UPdfType2Interpreter interpreter = _UPdfType2Interpreter(
      charStrings: _charStrings,
      globalSubrs: _globalSubrs,
      localSubrs: _isCid && _fdLocalSubrs.isNotEmpty ? _fdLocalSubrs[glyphId < _fdSelect.length ? _fdSelect[glyphId].clamp(0, _fdLocalSubrs.length - 1) : 0] : _localSubrs,
      nominalWidthX: _nominalWidthX,
      defaultWidthX: _defaultWidthX,
      owner: this,
    );
    path = interpreter.run(glyphId);
    _widthCache[glyphId] = interpreter.width;
  } on Object {
    path = null;
  }
  if (_pathCache.length > 4096) _pathCache.clear();
  _pathCache[glyphId] = path;
  return path;
}