Zeplin.MetaFont.GetBestFont C# (CSharp) Method

GetBestFont() public method

public GetBestFont ( float size, float &scale ) : SpriteFont
size float
scale float
return Microsoft.Xna.Framework.Graphics.SpriteFont
        public SpriteFont GetBestFont(float size, out float scale)
        {
            KeyValuePair<int, SpriteFont>? smallestBiggerFont = null, biggestSmallerFont = null;

            foreach (KeyValuePair<int, SpriteFont> kvp in _baseFonts)
            {
                if (kvp.Key > size && (!smallestBiggerFont.HasValue || kvp.Key < smallestBiggerFont.Value.Key))
                {
                    smallestBiggerFont = kvp;
                }
                else if (kvp.Key < size && (!biggestSmallerFont.HasValue || kvp.Key > biggestSmallerFont.Value.Key))
                {
                    biggestSmallerFont = kvp;
                }
                else if (kvp.Key == size)
                {
                    scale = 1.0f;
                    //Console.WriteLine("MetaFont returning {0} as best font for size {1} (ex)",
                    //    kvp.Key, size);
                    return kvp.Value;
                }
            }

            if (smallestBiggerFont.HasValue)
            {
                scale = size / smallestBiggerFont.Value.Key;
                //Console.WriteLine("MetaFont returning {0} @ {1}x as best font for size {2} (sb)",
                //    smallestBiggerFont.Value.Key, scale, size);
                return smallestBiggerFont.Value.Value;
            }
            else
            {
                scale = size / biggestSmallerFont.Value.Key;
                //Console.WriteLine("MetaFont returning {0} @ {1}x as best font for size {2} (bs)",
                //    biggestSmallerFont.Value.Key, scale, size);
                return biggestSmallerFont.Value.Value;
            }
        }