X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=gfx%2Ffont.h;h=b62b0b7c05bae1dc5d8feb540a4cde0d5d97e38a;hb=0e98bd5ee418681c347fc7fbe02ad53c59502f41;hp=049db533b02da79fbbfb58a457b77d6daf4fbfd3;hpb=41ee2287b2f2d7ec3e73e998b06076888608ed72;p=bertos.git diff --git a/gfx/font.h b/gfx/font.h old mode 100755 new mode 100644 index 049db533..b62b0b7c --- a/gfx/font.h +++ b/gfx/font.h @@ -1,8 +1,33 @@ -/*! +/** * \file * * * \version $Id$ @@ -14,6 +39,24 @@ /*#* *#* $Log$ + *#* Revision 1.7 2006/07/19 12:56:26 bernie + *#* Convert to new Doxygen style. + *#* + *#* Revision 1.6 2006/05/27 22:31:34 bernie + *#* Switch to a smaller default fount. + *#* + *#* Revision 1.5 2006/03/13 02:06:04 bernie + *#* FONT_HAS_GLYPH(): New macro. + *#* + *#* Revision 1.4 2006/02/15 09:10:15 bernie + *#* Implement prop fonts; Fix algo styles. + *#* + *#* Revision 1.3 2006/02/10 12:29:05 bernie + *#* Add multiple font support in bitmaps. + *#* + *#* Revision 1.2 2005/11/04 18:17:45 bernie + *#* Fix header guards and includes for new location of gfx module. + *#* *#* Revision 1.1 2005/11/04 18:11:35 bernie *#* Move graphics stuff from mware/ to gfx/. *#* @@ -42,21 +85,41 @@ *#* Move font table in program memory; add font.h *#* *#*/ -#ifndef MWARE_FONT_H -#define MWARE_FONT_H +#ifndef GFX_FONT_H +#define GFX_FONT_H #include /* uint8_t */ #include /* PROGMEM */ -/*! - * \name Font size (in pixel) - * \{ - */ -#define FONT_WIDTH 6 -#define FONT_HEIGHT 8 -/* \} */ +typedef struct Font +{ + /** + * Pointer to glyph data. + * + * Data is an array of at most 256 glyphs packed together. + * Raster format must be the same of the bitmap. + */ + const PROGMEM uint8_t *glyph; + + uint8_t width; /**< Pixel width of character cell. */ + uint8_t height; /**< Pixel height of character cell. */ + + uint8_t first; /**< First encoded character in glyph array. */ + uint8_t last; /**< Last encoded character in glyph array (inclusive). */ + + /** Array of glyph offsets in bytes. NULL for fixed-width fonts. */ + const PROGMEM uint16_t *offset; + const PROGMEM uint8_t *widths; + +} Font; + + +/** Return true if glyph \a c is available in \a font. */ +#define FONT_HAS_GLYPH(font, c) ((c) >= (font)->first && (c) <= (font)->last) + -/*! Font table */ -extern const PROGMEM uint8_t font[256 * FONT_WIDTH]; +/** The default font. */ +#define default_font font_luBS14 +extern const struct Font default_font; -#endif /* MWARE_FONT_H */ +#endif /* GFX_FONT_H */