• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 
2 package com.badlogic.gdx.tests;
3 
4 import com.badlogic.gdx.Gdx;
5 import com.badlogic.gdx.assets.AssetManager;
6 import com.badlogic.gdx.assets.loaders.BitmapFontLoader.BitmapFontParameter;
7 import com.badlogic.gdx.graphics.Color;
8 import com.badlogic.gdx.graphics.GL20;
9 import com.badlogic.gdx.graphics.g2d.BitmapFont;
10 import com.badlogic.gdx.graphics.g2d.SpriteBatch;
11 import com.badlogic.gdx.tests.utils.GdxTest;
12 import com.badlogic.gdx.utils.Array;
13 import com.badlogic.gdx.utils.reflect.ClassReflection;
14 
15 public class BitmapFontAtlasRegionTest extends GdxTest {
16 	private SpriteBatch batch;
17 	private AssetManager assets;
18 
19 	private BitmapFont[] fonts;
20 	private String[] testStrings;
21 
22 	private static final String FONT_1 = "data/default.fnt";
23 	private static final String FONT_2 = "data/font.fnt";
24 	private static final String FONT_3 = "data/verdana39.fnt";
25 	private static final String ATLAS = "data/atlased-fonts.txt";
26 
27 	@Override
create()28 	public void create () {
29 		this.batch = new SpriteBatch();
30 		this.assets = new AssetManager();
31 
32 		BitmapFontParameter params = new BitmapFontParameter();
33 		params.atlasName = ATLAS;
34 
35 		this.assets.load(FONT_1, BitmapFont.class, params);
36 		this.assets.load(FONT_2, BitmapFont.class, params);
37 		this.assets.load(FONT_3, BitmapFont.class, params);
38 		this.assets.finishLoading();
39 
40 		this.fonts = new BitmapFont[3];
41 		this.fonts[0] = assets.get(FONT_1);
42 		this.fonts[1] = assets.get(FONT_2);
43 		this.fonts[2] = assets.get(FONT_3);
44 
45 		this.fonts[0].setColor(Color.RED);
46 		this.fonts[1].setColor(Color.BLUE);
47 		this.fonts[2].setColor(Color.GREEN);
48 		this.testStrings = new String[] {"I'm loaded from an atlas!", "I, too, am loaded from an atlas", "I'm with stupid ^"};
49 
50 		Gdx.gl.glClearColor(1, 1, 1, 1);
51 	}
52 
53 	@Override
render()54 	public void render () {
55 		Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
56 
57 		batch.begin();
58 
59 		for (int i = 0; i < fonts.length; ++i) {
60 			fonts[i].draw(batch, testStrings[i], 16, 16 + 48 * i);
61 		}
62 
63 		batch.end();
64 	}
65 
66 	@Override
dispose()67 	public void dispose () {
68 		Array<String> loaded = this.assets.getAssetNames();
69 
70 		this.assets.dispose();
71 		this.batch.dispose();
72 
73 		String name = ClassReflection.getSimpleName(this.getClass());
74 		for (int i = 0; i < loaded.size; ++i) {
75 			String asset = loaded.get(i);
76 			if (this.assets.isLoaded(asset)) {
77 				Gdx.app.error(name, asset + " not properly disposed of!");
78 			} else {
79 				Gdx.app.log(name, asset + " disposed of OK");
80 			}
81 		}
82 	}
83 }
84