aboutsummaryrefslogtreecommitdiffstats
path: root/src/gdisp/mcufont
diff options
context:
space:
mode:
authorinmarket <andrewh@inmarket.com.au>2013-08-17 23:32:53 +1000
committerinmarket <andrewh@inmarket.com.au>2013-08-17 23:32:53 +1000
commita2b27a6f5c404a8b8883c0f7d50279550120035a (patch)
tree6bf7bc58c59e6a94844f97e3596c2ffc84ced3c2 /src/gdisp/mcufont
parent964ebc6e4a4ac647ad6c28bf8820f60fedcc0a95 (diff)
downloaduGFX-a2b27a6f5c404a8b8883c0f7d50279550120035a.tar.gz
uGFX-a2b27a6f5c404a8b8883c0f7d50279550120035a.tar.bz2
uGFX-a2b27a6f5c404a8b8883c0f7d50279550120035a.zip
Add new hand built bitmap fonts to replace old UI1 and UI2.
Allow scaled fonts to be staticly defined. Update new fonts handling so UI1 and UI2 have Narrow and Double variants. Update example gfxconf.h. Fix new font rules. Add support for an application program to add their own fonts. Make system font handling includes root relative.
Diffstat (limited to 'src/gdisp/mcufont')
-rw-r--r--src/gdisp/mcufont/mf_config.h1
-rw-r--r--src/gdisp/mcufont/mf_scaledfont.c8
-rw-r--r--src/gdisp/mcufont/mf_scaledfont.h12
3 files changed, 17 insertions, 4 deletions
diff --git a/src/gdisp/mcufont/mf_config.h b/src/gdisp/mcufont/mf_config.h
index 4614fb0c..317e36f5 100644
--- a/src/gdisp/mcufont/mf_config.h
+++ b/src/gdisp/mcufont/mf_config.h
@@ -23,6 +23,7 @@
#endif
#define MF_USE_KERNING GDISP_NEED_TEXT_KERNING
+#define MF_FONT_FILE_NAME "../src/gdisp/fonts/fonts.h"
/* These are not used for now */
#define MF_USE_ADVANCED_WORDWRAP 0
diff --git a/src/gdisp/mcufont/mf_scaledfont.c b/src/gdisp/mcufont/mf_scaledfont.c
index c98247f1..f49be1e4 100644
--- a/src/gdisp/mcufont/mf_scaledfont.c
+++ b/src/gdisp/mcufont/mf_scaledfont.c
@@ -33,7 +33,7 @@ static void scaled_pixel_callback(int16_t x, int16_t y, uint8_t count,
}
}
-static uint8_t scaled_character_width(const struct mf_font_s *font,
+uint8_t mf_scaled_character_width(const struct mf_font_s *font,
mf_char character)
{
struct mf_scaledfont_s *sfont = (struct mf_scaledfont_s*)font;
@@ -44,7 +44,7 @@ static uint8_t scaled_character_width(const struct mf_font_s *font,
return sfont->x_scale * basewidth;
}
-static uint8_t scaled_render_character(const struct mf_font_s *font,
+uint8_t mf_scaled_render_character(const struct mf_font_s *font,
int16_t x0, int16_t y0,
mf_char character,
mf_pixel_callback_t callback,
@@ -81,8 +81,8 @@ void mf_scale_font(struct mf_scaledfont_s *newfont,
newfont->font.min_x_advance *= x_scale;
newfont->font.max_x_advance *= x_scale;
newfont->font.line_height *= y_scale;
- newfont->font.character_width = &scaled_character_width;
- newfont->font.render_character = &scaled_render_character;
+ newfont->font.character_width = &mf_scaled_character_width;
+ newfont->font.render_character = &mf_scaled_render_character;
newfont->x_scale = x_scale;
newfont->y_scale = y_scale;
diff --git a/src/gdisp/mcufont/mf_scaledfont.h b/src/gdisp/mcufont/mf_scaledfont.h
index f378ca67..5fdc0980 100644
--- a/src/gdisp/mcufont/mf_scaledfont.h
+++ b/src/gdisp/mcufont/mf_scaledfont.h
@@ -27,4 +27,16 @@ MF_EXTERN void mf_scale_font(struct mf_scaledfont_s *newfont,
const struct mf_font_s *basefont,
uint8_t x_scale, uint8_t y_scale);
+#ifdef MF_SCALEDFONT_INTERNALS
+/* Internal functions, don't use these directly. */
+MF_EXTERN uint8_t mf_scaled_render_character(const struct mf_font_s *font,
+ int16_t x0, int16_t y0,
+ mf_char character,
+ mf_pixel_callback_t callback,
+ void *state);
+
+MF_EXTERN uint8_t mf_scaled_character_width(const struct mf_font_s *font,
+ mf_char character);
+#endif
+
#endif