Example usage for com.badlogic.gdx.graphics.g2d.freetype FreeType FT_LOAD_DEFAULT

List of usage examples for com.badlogic.gdx.graphics.g2d.freetype FreeType FT_LOAD_DEFAULT

Introduction

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

Prototype

int FT_LOAD_DEFAULT

To view the source code for com.badlogic.gdx.graphics.g2d.freetype FreeType FT_LOAD_DEFAULT.

Click Source Link

Usage

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./*w w w. ja v  a2s  . 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();
}