LiteCraft/src/main/java/io/github/hydos/ginger/engine/font/FontType.java

50 lines
1.3 KiB
Java

package io.github.hydos.ginger.engine.font;
/**
* Represents a font. It holds the font's texture atlas as well as having the
* ability to create the quad vertices for any text using this font.
*
*
*/
public class FontType {
private int textureAtlas;
private TextMeshCreator loader;
/**
* Creates a new font and loads up the data about each character from the
* font file.
*
* @param textureAtlas
* - the ID of the font atlas texture.
* @param fontFile
* - the font file containing information about each character in
* the texture atlas.
*/
public FontType(int textureAtlas, String fontFile) {
this.textureAtlas = textureAtlas;
this.loader = new TextMeshCreator(fontFile);
}
/**
* @return The font texture atlas.
*/
public int getTextureAtlas() {
return textureAtlas;
}
/**
* Takes in an unloaded text and calculate all of the vertices for the quads
* on which this text will be rendered. The vertex positions and texture
* coords and calculated based on the information from the font file.
*
* @param text
* - the unloaded text.
* @return Information about the vertices of all the quads.
*/
public TextMeshData loadText(GUIText text) {
return loader.createTextMesh(text);
}
}