예제 #1
0
        public CharData Get(char id)
        {
            CharData val = null;

            if (CharDatas.TryGetValue((int)id, out val))
            {
                return(val);
            }
            return(null);
        }
예제 #2
0
        public int WidthOf(string str)
        {
            int width = 0;

            for (int i = 0; i < str.Length; i++)
            {
                if (CharDatas.ContainsKey((int)str[i]))
                {
                    width += CharDatas[(int)str[i]].XAdvance;
                }
            }
            return(width);
        }
예제 #3
0
        public Vector2 Measure(string str)
        {
            Vector2 size      = new Vector2(0, LineHeight);
            int     lineWidth = 0;

            for (int i = 0; i < str.Length; i++)
            {
                if (str[i] == '\n')
                {
                    size.Y += LineHeight;

                    size.X    = Math.Max(lineWidth, size.X);
                    lineWidth = 0;
                }
                else if (CharDatas.ContainsKey((int)str[i]))
                {
                    lineWidth += CharDatas[(int)str[i]].XAdvance;
                }
            }
            size.X = Math.Max(lineWidth, size.X);

            return(size);
        }
예제 #4
0
 public int WidthOf(char character)
 {
     return(CharDatas.ContainsKey((int)character) ? CharDatas[(int)character].XAdvance : 0);
 }