• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package com.badlogic.gdx.graphics.g2d.freetype;
2 
3 import com.badlogic.gdx.assets.AssetDescriptor;
4 import com.badlogic.gdx.assets.AssetLoaderParameters;
5 import com.badlogic.gdx.assets.AssetManager;
6 import com.badlogic.gdx.assets.loaders.AsynchronousAssetLoader;
7 import com.badlogic.gdx.assets.loaders.FileHandleResolver;
8 import com.badlogic.gdx.files.FileHandle;
9 import com.badlogic.gdx.graphics.g2d.BitmapFont;
10 import com.badlogic.gdx.graphics.g2d.BitmapFont.BitmapFontData;
11 import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator.FreeTypeBitmapFontData;
12 import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator.FreeTypeFontParameter;
13 import com.badlogic.gdx.utils.Array;
14 
15 /**
16  * Creates {@link BitmapFont} instances from FreeType font files. Requires a {@link FreeTypeFontLoaderParameter} to be
17  * passed to {@link AssetManager#load(String, Class, AssetLoaderParameters)} which specifies the name of the TTF
18  * file as well the parameters used to generate the BitmapFont (size, characters, etc.)
19  */
20 public class FreetypeFontLoader extends AsynchronousAssetLoader<BitmapFont, FreetypeFontLoader.FreeTypeFontLoaderParameter>{
FreetypeFontLoader(FileHandleResolver resolver)21 	public FreetypeFontLoader (FileHandleResolver resolver) {
22 		super(resolver);
23 	}
24 
25 	public static class FreeTypeFontLoaderParameter extends AssetLoaderParameters<BitmapFont>{
26 		/** the name of the TTF file to be used to load the font **/
27 		public String fontFileName;
28 		/** the parameters used to generate the font, e.g. size, characters, etc. **/
29 		public FreeTypeFontParameter fontParameters = new FreeTypeFontParameter();
30 	}
31 
32 	@Override
loadAsync(AssetManager manager, String fileName, FileHandle file, FreeTypeFontLoaderParameter parameter)33 	public void loadAsync (AssetManager manager, String fileName, FileHandle file, FreeTypeFontLoaderParameter parameter) {
34 		if(parameter == null) throw new RuntimeException("FreetypeFontParameter must be set in AssetManager#load to point at a TTF file!");
35 	}
36 
37 	@Override
loadSync(AssetManager manager, String fileName, FileHandle file, FreeTypeFontLoaderParameter parameter)38 	public BitmapFont loadSync (AssetManager manager, String fileName, FileHandle file, FreeTypeFontLoaderParameter parameter) {
39 		if(parameter == null) throw new RuntimeException("FreetypeFontParameter must be set in AssetManager#load to point at a TTF file!");
40 		FreeTypeFontGenerator generator = manager.get(parameter.fontFileName + ".gen", FreeTypeFontGenerator.class);
41 		BitmapFont font = generator.generateFont(parameter.fontParameters);
42 		return font;
43 	}
44 
45 	@Override
getDependencies(String fileName, FileHandle file, FreeTypeFontLoaderParameter parameter)46 	public Array<AssetDescriptor> getDependencies (String fileName, FileHandle file, FreeTypeFontLoaderParameter parameter) {
47 		Array<AssetDescriptor> deps = new Array<AssetDescriptor>();
48 		deps.add(new AssetDescriptor<FreeTypeFontGenerator>(parameter.fontFileName + ".gen", FreeTypeFontGenerator.class));
49 		return deps;
50 	}
51 }
52