Example usage for com.badlogic.gdx.graphics.g2d.freetype FreeTypeFontGenerator generateData

List of usage examples for com.badlogic.gdx.graphics.g2d.freetype FreeTypeFontGenerator generateData

Introduction

In this page you can find the example usage for com.badlogic.gdx.graphics.g2d.freetype FreeTypeFontGenerator generateData.

Prototype

public FreeTypeBitmapFontData generateData(FreeTypeFontParameter parameter) 

Source Link

Document

Generates a new BitmapFontData instance, expert usage only.

Usage

From source file:com.randombot.theme.Ttf2FntGenerator.java

License:Open Source License

/**
 * 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./*w w w  .j av a2s.  co  m*/
 * 
 * @param fontFile
 * @param fontSize
 * @param destiny
 */
private void generateFiles(String fontName, FileHandle fontFile, int fontSize, int pageWidth, int pageHeight,
        FileHandle destiny) {
    FreeTypeFontGenerator generator = new FreeTypeFontGenerator(fontFile);

    PixmapPacker packer = new PixmapPacker(pageWidth, pageHeight, Pixmap.Format.RGBA8888, 2, false);
    FreeTypeFontParameter param = new FreeTypeFontParameter();
    param.packer = packer;
    param.characters = FreeTypeFontGenerator.DEFAULT_CHARS;
    param.size = fontSize;
    param.flip = false;

    FreeTypeFontGenerator.FreeTypeBitmapFontData fontData = generator.generateData(param);

    saveFontToFile(fontData, fontSize, fontName, packer, destiny);
    generator.dispose();
    packer.dispose();
}

From source file:es.eucm.ead.maven.GenerateSkinMojo.java

License:Open Source License

/**
 * 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./*from   w w  w.  j  ava2  s  .c  o m*/
 * 
 * @param fontFile
 * @param fontSize
 * @param destiny
 */
private void generateFiles(String fontName, FileHandle fontFile, int fontSize, FileHandle destiny) {
    FreeTypeFontGenerator generator = new FreeTypeFontGenerator(fontFile);

    // compute the minimum page size for a square png
    FreeType.Library library = FreeType.initFreeType();
    FreeType.Face face = FreeType.newFace(library, fontFile, 0);
    FreeType.setPixelSizes(face, 0, fontSize);
    FreeType.SizeMetrics fontMetrics = face.getSize().getMetrics();
    float scale = FreeType.toInt(fontMetrics.getHeight());

    for (int c = 32; c < (32 + face.getNumGlyphs()); c++) {
        if (FreeType.loadChar(face, c, FreeType.FT_LOAD_DEFAULT)) {
            int lh = FreeType.toInt(face.getGlyph().getMetrics().getHeight());
            scale = (lh > scale) ? lh : scale;
        }
    }

    // generate the glyphs
    int maxGlyphHeight = (int) Math.ceil(scale);
    float area = maxGlyphHeight * maxGlyphHeight * FreeTypeFontGenerator.DEFAULT_CHARS.length();
    int pageWidth = MathUtils.nextPowerOfTwo((int) Math.sqrt(area));

    pageWidth = Math.min(pageWidth, 1024);

    PixmapPacker packer = new PixmapPacker(pageWidth, pageWidth, Pixmap.Format.RGBA8888, 2, false);

    FreeTypeFontGenerator.FreeTypeFontParameter param = new FreeTypeFontGenerator.FreeTypeFontParameter();
    param.packer = packer;
    param.characters = FreeTypeFontGenerator.DEFAULT_CHARS;
    param.size = fontSize;
    param.flip = false;

    FreeTypeFontGenerator.FreeTypeBitmapFontData fontData = generator.generateData(param);

    saveFontToFile(fontData, fontSize, fontName, packer, destiny);
    generator.dispose();
    packer.dispose();
}