summaryrefslogtreecommitdiff
path: root/framebuffer/font_internal.h
diff options
context:
space:
mode:
authorMichael Drake <tlsa@netsurf-browser.org>2014-05-06 21:31:05 +0100
committerMichael Drake <tlsa@netsurf-browser.org>2014-05-06 21:31:05 +0100
commit4cbc56ebc103e1b8302a4b710309e3af6a553ffc (patch)
tree7baf6129d4580ffd915b44974b751e026eb9e9c9 /framebuffer/font_internal.h
parentd67504677b9316dd0401b58e9cec8d7908a329cd (diff)
downloadnetsurf-4cbc56ebc103e1b8302a4b710309e3af6a553ffc.tar.gz
netsurf-4cbc56ebc103e1b8302a4b710309e3af6a553ffc.tar.bz2
Add Unicode support to internal font.
+ Now contains more glpyhs (was previously limited to cp-1252). + When a glyph is unavailable, the codepoint is now rendered. + Added glyph data file. + Added converter to generate the font's .c file from the data. TODO: The generated file is currently checked into the repo, but it should be generated as part of the build process, in the build-* directory. To update the generated source file, first build the converter: $ gcc -O2 -Wall framebuffer/convert_font.c -lm \ -o build-Linux-framebuffer/tools/convert_font And then use it to generate the souce file: $ build-Linux-framebuffer/tools/convert_font \ framebuffer/res/fonts/glyph_data \ framebuffer/GEN_font_internal.c -v The converter's usage is: convert_font [options] <in_file> <out_file> See convert_font --help for more details.
Diffstat (limited to 'framebuffer/font_internal.h')
-rw-r--r--framebuffer/font_internal.h25
1 files changed, 13 insertions, 12 deletions
diff --git a/framebuffer/font_internal.h b/framebuffer/font_internal.h
index 6b6de2f34..236183ace 100644
--- a/framebuffer/font_internal.h
+++ b/framebuffer/font_internal.h
@@ -21,22 +21,23 @@
struct fb_font_desc {
const char *name;
- int width, height;
- const char *encoding;
- const uint32_t *data;
+ int width, height, pitch;
};
-extern const struct fb_font_desc font_regular;
-extern const struct fb_font_desc font_italic;
-extern const struct fb_font_desc font_bold;
-extern const struct fb_font_desc font_italic_bold;
+#define FB_FONT_WIDTH 8
+#define FB_FONT_HEIGHT 16
+#define FB_FONT_PITCH 8
-extern const struct fb_font_desc* fb_get_font(const plot_font_style_t *fstyle);
+enum fb_font_style {
+ FB_REGULAR = 0,
+ FB_ITALIC = (1 << 0),
+ FB_BOLD = (1 << 1),
+ FB_BOLD_ITALIC = (FB_ITALIC | FB_BOLD)
+};
+
+enum fb_font_style fb_get_font_style(const plot_font_style_t *fstyle);
-extern nserror utf8_to_font_encoding(const struct fb_font_desc* font,
- const char *string,
- size_t len,
- char **result);
+const uint8_t * fb_get_glyph(uint32_t ucs4, enum fb_font_style style);
#endif /* NETSURF_FB_FONT_INTERNAL_H */