예제 #1
0
        public override void Initialize(BinaryReader reader)
        {
            var header = reader.ReadByte();

            // space characters have no data in AFont files.
            _characters[0] = new CharacterAscii();
            // We load all 224 characters; this seeds the font with correct height values.
            for (var i = 0; i < 224; i++)
            {
                var ch     = loadCharacter(reader);
                var height = ch.Height;
                if (i > 32 && i < 90 && height > Height)
                {
                    Height = height;
                }
                _characters[i] = ch;
            }
            for (var i = 0; i < 224; i++)
            {
                _characters[i].YOffset = Height - (_characters[i].Height + _characters[i].YOffset);
            }
            // ascii fonts are so tall! why?
            Height -= 2;
            // Determine the width of the space character - arbitrarily .333 the width of capital M (.333 em?).
            GetCharacter(' ').Width = GetCharacter('M').Width / 3;
        }
예제 #2
0
        CharacterAscii loadCharacter(BinaryReader reader)
        {
            var character = new CharacterAscii(reader);

            return(character);
        }