package com.badlogic.gdx.tests;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.assets.AssetManager;
import com.badlogic.gdx.assets.loaders.BitmapFontLoader.BitmapFontParameter;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.tests.utils.GdxTest;
import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.reflect.ClassReflection;
public class BitmapFontAtlasRegionTest extends GdxTest {
private SpriteBatch batch;
private AssetManager assets;
private BitmapFont[] fonts;
private String[] testStrings;
private static final String FONT_1 = "data/default.fnt";
private static final String FONT_2 = "data/font.fnt";
private static final String FONT_3 = "data/verdana39.fnt";
private static final String ATLAS = "data/atlased-fonts.txt";
@Override
public void create () {
this.batch = new SpriteBatch();
this.assets = new AssetManager();
BitmapFontParameter params = new BitmapFontParameter();
params.atlasName = ATLAS;
this.assets.load(FONT_1, BitmapFont.class, params);
this.assets.load(FONT_2, BitmapFont.class, params);
this.assets.load(FONT_3, BitmapFont.class, params);
this.assets.finishLoading();
this.fonts = new BitmapFont[3];
this.fonts[0] = assets.get(FONT_1);
this.fonts[1] = assets.get(FONT_2);
this.fonts[2] = assets.get(FONT_3);
this.fonts[0].setColor(Color.RED);
this.fonts[1].setColor(Color.BLUE);
this.fonts[2].setColor(Color.GREEN);
this.testStrings = new String[] {"I'm loaded from an atlas!", "I, too, am loaded from an atlas", "I'm with stupid ^"};
Gdx.gl.glClearColor(1, 1, 1, 1);
}
@Override
public void render () {
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.begin();
for (int i = 0; i < fonts.length; ++i) {
fonts[i].draw(batch, testStrings[i], 16, 16 + 48 * i);
}
batch.end();
}
@Override
public void dispose () {
Array<String> loaded = this.assets.getAssetNames();
this.assets.dispose();
this.batch.dispose();
String name = ClassReflection.getSimpleName(this.getClass());
for (int i = 0; i < loaded.size; ++i) {
String asset = loaded.get(i);
if (this.assets.isLoaded(asset)) {
Gdx.app.error(name, asset + " not properly disposed of!");
} else {
Gdx.app.log(name, asset + " disposed of OK");
}
}
}
}