#ifndef __FONT_TEXTURE_H__
#define __FONT_TEXTURE_H__

typedef struct FontTexture FontTexture;

struct Texture;

struct FontTexture_characterDimensions {
	float offset;
	float advancement;
	float textureLeft;
	float textureRight;
	float textureBottom;
	float textureTop;
	struct FontTexture_kerningTable {
		unsigned int numberOfEntries;
		struct FontTexture_kerningTableEntry {
			char previous;
			float offset;
		} * entries;
	} kerningTable;
};

struct FontTexture {
	struct Texture * texture;
	unsigned int emHeight;
	struct FontTexture_characterDimensions characters[95];
};

FontTexture * FontTexture_create();
void FontTexture_init(FontTexture * self);
void FontTexture_readProperties(FontTexture * self, const char * filePath);
void FontTexture_dispose(FontTexture * self);

#endif
