public void GetGlyphDrawAreaAndUVs()
        {
            var fontData = new FontDescription(ContentLoader.Load <Font>("Verdana12").Data);

            fontData.Generate("", HorizontalAlignment.Center);
            Assert.AreEqual(0, fontData.Glyphs.Length);
            fontData.Generate("\n", HorizontalAlignment.Center);
            Assert.AreEqual(0, fontData.Glyphs.Length);
            fontData.Generate(" ", HorizontalAlignment.Center);
            Assert.AreEqual(1, fontData.Glyphs.Length);
            GlyphDrawData glyphA = fontData.Glyphs[0];

            Assert.AreEqual(glyphA.UV,
                            Rectangle.BuildUVRectangle(new Rectangle(0, 0, 1, 16), new Size(128, 128)));
            Assert.AreEqual(new Rectangle(0, 0, 1, 16), glyphA.DrawArea);
        }
Example #2
0
        private static GlyphDrawData[] LoadGlyphDrawData(BinaryReader reader)
        {
            int count = reader.ReadByte();

            if (count == 255)
            {
                count = reader.ReadInt32();
            }
            var data = new GlyphDrawData[count];

            if (count == 0)
            {
                return(data);
            }
            var arrayType = reader.ReadByte();
            var name      = reader.ReadString();

            for (int i = 0; i < count; i++)
            {
                data[i].DrawArea = LoadRectangle(reader);
                data[i].UV       = LoadRectangle(reader);
            }
            return(data);
        }