Skip to content

Commit

Permalink
Improve font baking
Browse files Browse the repository at this point in the history
  • Loading branch information
bitbrain committed Dec 7, 2019
1 parent 4b01fba commit 4a531f1
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 2 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# Version 0.6.10

* minor API improvements around font baking

# Version 0.6.9

* fixed a positioning issue when centering rectangular box2d objects
Expand Down
7 changes: 7 additions & 0 deletions core/src/main/java/de/bitbrain/braingdx/BrainGdxGame.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import com.badlogic.gdx.scenes.scene2d.Actor;
import de.bitbrain.braingdx.assets.GameAssetLoader;
import de.bitbrain.braingdx.assets.SharedAssetManager;
import de.bitbrain.braingdx.graphics.BitmapFontBaker;
import de.bitbrain.braingdx.graphics.GameCamera;
import de.bitbrain.braingdx.graphics.postprocessing.effects.*;
import de.bitbrain.braingdx.screens.AbstractScreen;
Expand Down Expand Up @@ -51,6 +52,12 @@ public final void create() {
setScreen(getInitialScreen());
}

@Override
public void dispose() {
super.dispose();
BitmapFontBaker.dispose();
}

protected abstract GameAssetLoader getAssetLoader();

protected abstract AbstractScreen<?, ?> getInitialScreen();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
package de.bitbrain.braingdx.graphics;

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator;
import de.bitbrain.braingdx.assets.SharedAssetManager;

import java.util.ArrayList;
import java.util.List;

/**
* Bakes {@link BitmapFont} out of ttf fonts
*
Expand All @@ -13,11 +17,34 @@
*/
public class BitmapFontBaker {

public static BitmapFont bake(String fontPath, int size) {
private static List<BitmapFont> bakedFonts = new ArrayList<BitmapFont>();

public static BitmapFont bake(String fontPath, FreeTypeFontGenerator.FreeTypeFontParameter params) {
FreeTypeFontGenerator generator = SharedAssetManager.getInstance().get(fontPath, FreeTypeFontGenerator.class);
BitmapFont font = generator.generateFont(params);
bakedFonts.add(font);
return font;
}

public static BitmapFont bake(String fontPath, int size, boolean mono) {
FreeTypeFontGenerator.FreeTypeFontParameter param = new FreeTypeFontGenerator.FreeTypeFontParameter();
param.color = Color.WHITE;
param.size = size;
return generator.generateFont(param);
param.mono = mono;
return bake(fontPath, param);
}

public static BitmapFont bake(String fontPath, int size) {
return bake(fontPath, size, false);
}

public static void dispose() {
if (!bakedFonts.isEmpty()) {
Gdx.app.log("INFO", "Disposing " + bakedFonts.size() + " fonts...");
for (BitmapFont font : bakedFonts) {
font.dispose();
}
Gdx.app.log("INFO", "Done.");
}
}
}

0 comments on commit 4a531f1

Please sign in to comment.