public bool TryGetGlyphData(char c, out VectorGlyphInfo info, out Path2DCommands cmds) { AddCharacter(c); info = m_infos[c]; cmds = m_paths[c]; return(true); }
public void AddCharacter(char c) { if (m_infos.ContainsKey(c)) { return; } var glyph = m_font.GetGlyph(c).Instance; var info = new VectorGlyphInfo { EmSize = glyph.SizeOfEm, AdvanceWidth = glyph.AdvanceWidth, LineHeight = m_font.LineHeight, }; var cmds = new Path2DCommands(); (Vector2 Position, bool CurveControl)[] points = glyph.ControlPoints.Zip(glyph.OnCurves, (a, b) => (new Vector2(a.X, -a.Y), !b)).ToArray();