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); }
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); }