// Font structures for newer Adafruit_GFX (1.1 and later).
// Example fonts are included in 'Fonts' directory.
// To use a font in your Arduino sketch, #include the corresponding .h
// file and pass address of GFXfont struct to setFont().  Pass NULL to
// revert to 'classic' fixed-space bitmap font.

#ifndef _GFXFONT_H_
#define _GFXFONT_H_

/// Font data stored PER GLYPH
typedef struct
{
	uint16_t bitmapOffset; ///< Pointer into GFXfont->bitmap
	uint8_t width;				 ///< Bitmap dimensions in pixels
	uint8_t height;				 ///< Bitmap dimensions in pixels
	uint8_t xAdvance;			 ///< Distance to advance cursor (x axis)
	int8_t xOffset;				 ///< X dist from cursor pos to UL corner
	int8_t yOffset;				 ///< Y dist from cursor pos to UL corner
} GFXglyph;

/// Data stored for FONT AS A WHOLE
typedef struct
{
	uint8_t *bitmap;	///< Glyph bitmaps, concatenated
	GFXglyph *glyph;	///< Glyph array
	uint8_t first;		///< ASCII extents (first char)
	uint8_t last;			///< ASCII extents (last char)
	uint8_t yAdvance; ///< Newline distance (y axis)
} GFXfont;

#endif // _GFXFONT_H_
