Exemple #1
0
        public bool TryGetGlyphData(char c, out VectorGlyphInfo info, out Path2DCommands cmds)
        {
            AddCharacter(c);

            info = m_infos[c];
            cmds = m_paths[c];

            return(true);
        }
Exemple #2
0
        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();