/** * Convenience method for generating a font, and then writing the fnt and png files. Writing a * generated font to files allows the possibility of only generating the fonts when they are * missing, otherwise loading from a previously generated file. * * @param fontFile * @param fontSize */ private AnimvsBitmapFont generateFontWriteFiles( String fontName, FileHandle fontFile, int fontSize, int pageWidth, int pageHeight, String characters) { FreeTypeFontGenerator generator = new FreeTypeFontGenerator(fontFile); PixmapPacker packer = new PixmapPacker(pageWidth, pageHeight, Pixmap.Format.RGBA8888, 1, false); FreeTypeFontParameter fontParameters = new FreeTypeFontParameter(); fontParameters.characters = characters; fontParameters.size = fontSize; fontParameters.minFilter = TextureFilter.Nearest; fontParameters.magFilter = TextureFilter.Linear; fontParameters.packer = packer; // FreeTypeFontGenerator.FreeTypeBitmapFontData fontData = // generator.generateData(fontSize, characters, false, packer); FreeTypeFontGenerator.FreeTypeBitmapFontData fontData = generator.generateData(fontParameters); Array<PixmapPacker.Page> pages = packer.getPages(); Array<TextureRegion> texRegions = new Array<TextureRegion>(pages.size); for (int i = 0; i < pages.size; i++) { PixmapPacker.Page p = pages.get(i); Texture tex = new Texture( new PixmapTextureData(p.getPixmap(), p.getPixmap().getFormat(), false, false, true)) { @Override public void dispose() { super.dispose(); getTextureData().consumePixmap().dispose(); } }; tex.setFilter(Texture.TextureFilter.Nearest, Texture.TextureFilter.Nearest); texRegions.add(new TextureRegion(tex)); } AnimvsBitmapFont font = new AnimvsBitmapFont(fontData, texRegions, true); setDefaultFilter(font); saveFontToFile(font, fontSize, fontName, packer); generator.dispose(); packer.dispose(); return font; }