aboutsummaryrefslogtreecommitdiff
path: root/src/font_renderer.h
diff options
context:
space:
mode:
authorFrancesco Abbate <francesco.bbt@gmail.com>2020-06-01 12:56:23 +0200
committerFrancesco Abbate <francesco.bbt@gmail.com>2020-06-01 12:56:23 +0200
commit3a8cb05ea63cd7f8d6ed4356a34f579dd47ff8ae (patch)
treec26f92ebb5c1b1e5bd7ef8794d83c218b057da2a /src/font_renderer.h
parentca6b7bc9028bc43d217594868a3924066ea311a5 (diff)
downloadlite-xl-3a8cb05ea63cd7f8d6ed4356a34f579dd47ff8ae.tar.gz
lite-xl-3a8cb05ea63cd7f8d6ed4356a34f579dd47ff8ae.zip
Replace stb's BakeBitmapFont with AGG based font's renderer
Diffstat (limited to 'src/font_renderer.h')
-rw-r--r--src/font_renderer.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/font_renderer.h b/src/font_renderer.h
new file mode 100644
index 00000000..b7cf62e5
--- /dev/null
+++ b/src/font_renderer.h
@@ -0,0 +1,34 @@
+#ifndef FONT_RENDERER_H
+#define FONT_RENDERER_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// Mirrors stbtt_bakedchar.
+struct GlyphBitmapInfo_ {
+ unsigned short x0, y0, x1, y1;
+ float xoff, yoff, xadvance;
+};
+typedef struct GlyphBitmapInfo_ GlyphBitmapInfo;
+
+struct FontRenderer_;
+typedef struct FontRenderer_ FontRenderer;
+
+enum {
+ FONT_RENDERER_HINTING = 1 << 0,
+ FONT_RENDERER_KERNING = 1 << 1,
+};
+
+FontRenderer *FontRendererNew(unsigned int flags);
+int FontRendererLoadFont(FontRenderer *, const char *filename);
+int FontRendererGetFontHeight(FontRenderer *, float size);
+int FontRendererBakeFontBitmap(FontRenderer *, int font_height,
+ void *pixels, int pixels_width, int pixels_height,
+ int first_char, int num_chars, GlyphBitmapInfo *glyph_info);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif