public BorderedFontContent(XmlBorderedFontDefinition definition) { Font font = new Font(definition.FontName, definition.Size * 96.0f / 72.0f, GraphicsUnit.Pixel); _spaceMultiplier = definition.SpaceMultiplier; Generate(out BorderedDefStr, out BorderedTexture, font, definition.BorderThickness, definition.UseKerning, definition.CharactersToInclude); Generate(out InnerDefStr, out InnerTexture, font, 0, definition.UseKerning, definition.CharactersToInclude); if (definition.IncludeRetina) { var backup = KerningInfo; font = new Font(definition.FontName, 2 * definition.Size * 96.0f / 72.0f, GraphicsUnit.Pixel); Generate(out RetinaBorderedDefStr, out RetinaBorderedTexture, font, definition.BorderThickness * 2, definition.UseKerning, definition.CharactersToInclude); Generate(out RetinaInnerDefStr, out RetinaInnerTexture, font, 0, definition.UseKerning, definition.CharactersToInclude); RetinaKerningInfo = KerningInfo; KerningInfo = backup; } }
private static void Main(string[] args) { var def = new XmlBorderedFontDefinition(args[0]); var content = new BorderedFontContent(def); string fileName = Path.GetFileNameWithoutExtension(args[0]); if (args.Length == 2 || args[2] == "normalres") { content.InnerTexture.Save(Path.Combine(args[1], fileName + ".inner.png")); content.BorderedTexture.Save(Path.Combine(args[1], fileName + ".border.png")); File.WriteAllText(Path.Combine(args[1], fileName + ".inner.txt"), content.InnerDefStr); File.WriteAllText(Path.Combine(args[1], fileName + ".border.txt"), content.BorderedDefStr); File.WriteAllText(Path.Combine(args[1], fileName + ".kerning.txt"), content.KerningInfo); } if (args.Length == 2 || args[2] == "retina") { content.RetinaInnerTexture.Save(Path.Combine(args[1], fileName + "*****@*****.**")); content.RetinaBorderedTexture.Save(Path.Combine(args[1], fileName + "*****@*****.**")); File.WriteAllText(Path.Combine(args[1], fileName + "*****@*****.**"), content.RetinaInnerDefStr); File.WriteAllText(Path.Combine(args[1], fileName + "*****@*****.**"), content.RetinaBorderedDefStr); File.WriteAllText(Path.Combine(args[1], fileName + "*****@*****.**"), content.RetinaKerningInfo); } }