summaryrefslogtreecommitdiff
path: root/src/displayapp/fonts
diff options
context:
space:
mode:
authorJF <jf@codingfield.com>2021-05-21 09:38:38 (GMT)
committerGitea <gitea@fake.local>2021-05-21 09:38:38 (GMT)
commitde69905c0647997091d9e385538c96de30be93e6 (patch)
tree4775001d808da520c93a7552da1bea80e7714a30 /src/displayapp/fonts
parenta80e782f267cd2424d22da23d809c0c6a8ff8761 (diff)
parent7c9513be8a3bf36fda5706cb0fb1bd6232d42ffd (diff)
Merge branch 'develop' of JF/PineTime into master
Diffstat (limited to 'src/displayapp/fonts')
-rw-r--r--src/displayapp/fonts/README.md44
-rw-r--r--src/displayapp/fonts/Readme.md41
-rw-r--r--src/displayapp/fonts/jetbrains_mono_42.c258
-rw-r--r--src/displayapp/fonts/jetbrains_mono_bold_20.c36
4 files changed, 324 insertions, 55 deletions
diff --git a/src/displayapp/fonts/README.md b/src/displayapp/fonts/README.md
new file mode 100644
index 0000000..183ad7e
--- /dev/null
+++ b/src/displayapp/fonts/README.md
@@ -0,0 +1,44 @@
+# Fonts
+
+* [Jetbrains Mono](https://www.jetbrains.com/fr-fr/lp/mono/)
+* [Awesome font from LVGL](https://lvgl.io/assets/others/FontAwesome5-Solid+Brands+Regular.woff)
+
+## Generate the fonts:
+
+* Open the [LVGL font converter](https://lvgl.io/tools/fontconverter)
+* Name : jetbrains_mono_bold_20
+* Size : 20
+* Bpp : 1 bit-per-pixel
+* Do not enable font compression and horizontal subpixel hinting
+* Load the file `JetBrainsMono-Bold.tff` and specify the following range : `0x20-0x7f, 0x410-0x44f`
+* Add a 2nd font, load the file `FontAwesome5-Solid+Brands+Regular.woff` and specify the following
+ range : `0xf293, 0xf294, 0xf244, 0xf240, 0xf242, 0xf243, 0xf241, 0xf54b, 0xf21e, 0xf1e6, 0xf54b, 0xf017, 0xf129, 0xf03a, 0xf185, 0xf560, 0xf001, 0xf3fd, 0xf069, 0xf1fc, 0xf45d, 0xf59f, 0xf5a0, 0xf029, 0xf027, 0xf028, 0xf6a9, 0xf04b, 0xf04c, 0xf048, 0xf051, 0xf095, 0xf3dd, 0xf04d, 0xf2f2, 0xf024, 0xf252`
+* Click on Convert, and download the file `jetbrains_mono_bold_20.c` and copy it in `src/DisplayApp/Fonts`
+
+Add new symbols:
+
+* Browse the [cheatsheet](https://fontawesome.com/cheatsheet/free/solid) and find your new symbols
+* For each symbol, add its hex code (0xf641 for the 'Ad' icon, for example) to the *Range* list (Remember to keep this
+ readme updated with newest range list)
+* Convert this hex value into a UTF-8 code
+ using [this site](http://www.ltg.ed.ac.uk/~richard/utf-8.cgi?input=f185&mode=hex)
+* Define the new symbols in `src/displayapp/screens/Symbols.h`:
+
+```
+static constexpr const char* newSymbol = "\xEF\x86\x85";
+```
+
+#### Navigation font
+
+To create the navigtion.ttf I use the web app [icomoon](https://icomoon.io/app)
+this app can import the svg files from the folder *src/displayapp/icons/navigation/unique* and creat a ttf file the
+project for the site is *lv_font_navi_80.json* you can import it to add or remove icons
+
+You can also use the online LVGL tool to create the .c
+
+ttf file : navigation.ttf name : lv_font_navi_80 size : 80px Bpp : 2 bit-per-pixel range : 0xe900-0xe929
+
+$lv_font_conv --font navigation.ttf -r '0xe900-0xe929' --size 80 --format lvgl --bpp 2 --no-prefilter -o
+lv_font_navi_80.c
+
+#### I use the method above to create the other ttf
diff --git a/src/displayapp/fonts/Readme.md b/src/displayapp/fonts/Readme.md
deleted file mode 100644
index 3bfe423..0000000
--- a/src/displayapp/fonts/Readme.md
+++ /dev/null
@@ -1,41 +0,0 @@
-#Fonts
-* [Jetbrains Mono](https://www.jetbrains.com/fr-fr/lp/mono/)
-* [Awesome font from LVGL](https://lvgl.io/assets/others/FontAwesome5-Solid+Brands+Regular.woff)
-
-## Generate the fonts:
-
- * Open the [LVGL font converter](https://lvgl.io/tools/fontconverter)
- * Name : jetbrains_mono_bold_20
- * Size : 20
- * Bpp : 1 bit-per-pixel
- * Do not enable font compression and horizontal subpixel hinting
- * Load the file `JetBrainsMono-Bold.tff` and specify the following range : `0x20-0x7f, 0x410-0x44f`
- * Add a 2nd font, load the file `FontAwesome5-Solid+Brands+Regular.woff` and specify the following range : `0xf293, 0xf294, 0xf244, 0xf240, 0xf242, 0xf243, 0xf241, 0xf54b, 0xf21e, 0xf1e6, 0xf54b, 0xf017, 0xf129, 0xf03a, 0xf185, 0xf560, 0xf001, 0xf3fd, 0xf069, 0xf1fc, 0xf45d, 0xf59f, 0xf5a0, 0xf029, 0xf027, 0xf028, 0xf6a9, 0xf04b, 0xf04c, 0xf048, 0xf051, 0xf095, 0xf3dd, 0xf04d, 0xf2f2, 0xf024`
- * Click on Convert, and download the file `jetbrains_mono_bold_20.c` and copy it in `src/DisplayApp/Fonts`
-
-Add new symbols:
- * Browse the [cheatsheet](https://fontawesome.com/cheatsheet/free/solid) and find your new symbols
- * For each symbol, add its hex code (0xf641 for the 'Ad' icon, for example) to the *Range* list (Remember to keep this readme updated with newest range list)
- * Convert this hex value into a UTF-8 code using [this site](http://www.ltg.ed.ac.uk/~richard/utf-8.cgi?input=f185&mode=hex)
- * Define the new symbols in `src/DisplayApp/Screens/Symbols.h`:
-```
-static constex char* newSymbol = "\xEF\x86\x85";
-```
-
-#### Navigation font
-
-To create the navigtion.ttf I use the web app [icomoon](https://icomoon.io/app)
-this app can import the svg files from the folder *src/displayapp/icons/navigation/unique* and creat a ttf file
-the project for the site is *lv_font_navi_80.json* you can import it to add or remove icons
-
-You can also use the online LVGL tool to create the .c
-
-ttf file : navigation.ttf
-name : lv_font_navi_80
-size : 80px
-Bpp : 2 bit-per-pixel
-range : 0xe900-0xe929
-
-$lv_font_conv --font navigation.ttf -r '0xe900-0xe929' --size 80 --format lvgl --bpp 2 --no-prefilter -o lv_font_navi_80.c
-
-#### I use the method above to create the other ttf \ No newline at end of file
diff --git a/src/displayapp/fonts/jetbrains_mono_42.c b/src/displayapp/fonts/jetbrains_mono_42.c
new file mode 100644
index 0000000..6f25f5a
--- /dev/null
+++ b/src/displayapp/fonts/jetbrains_mono_42.c
@@ -0,0 +1,258 @@
+/*******************************************************************************
+ * Size: 42 px
+ * Bpp: 1
+ * Opts:
+ ******************************************************************************/
+
+#ifdef LV_LVGL_H_INCLUDE_SIMPLE
+#include "lvgl.h"
+#else
+#include "lvgl/lvgl.h"
+#endif
+
+#ifndef JETBRAINS_MONO_42
+#define JETBRAINS_MONO_42 1
+#endif
+
+#if JETBRAINS_MONO_42
+
+/*-----------------
+ * BITMAPS
+ *----------------*/
+
+/*Store the image of the glyphs*/
+static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
+ /* U+0025 "%" */
+ 0x1f, 0x80, 0x7, 0x3f, 0xc0, 0xe, 0x7f, 0xe0,
+ 0x1c, 0xf0, 0xf0, 0x1c, 0xe0, 0x70, 0x38, 0xe0,
+ 0x70, 0x70, 0xe0, 0x70, 0x70, 0xe0, 0x70, 0xe0,
+ 0xe0, 0x71, 0xc0, 0xe0, 0x71, 0xc0, 0xf0, 0xf3,
+ 0x80, 0x7f, 0xe7, 0x0, 0x3f, 0xc7, 0x0, 0x1f,
+ 0x8e, 0x0, 0x0, 0x1c, 0x0, 0x0, 0x3c, 0x0,
+ 0x0, 0x38, 0x0, 0x0, 0x71, 0xf8, 0x0, 0xe3,
+ 0xfc, 0x0, 0xe7, 0xfe, 0x1, 0xcf, 0xf, 0x3,
+ 0x8e, 0x7, 0x3, 0x8e, 0x7, 0x7, 0xe, 0x7,
+ 0xe, 0xe, 0x7, 0xe, 0xe, 0x7, 0x1c, 0xe,
+ 0x7, 0x38, 0xf, 0xf, 0x38, 0x7, 0xfe, 0x70,
+ 0x3, 0xfc, 0xe0, 0x1, 0xf8,
+
+ /* U+0030 "0" */
+ 0x3, 0xf8, 0x1, 0xff, 0xc0, 0xff, 0xfe, 0x1f,
+ 0x7, 0xc7, 0xc0, 0x7c, 0xf0, 0x7, 0xbc, 0x0,
+ 0x7f, 0x80, 0xf, 0xf0, 0x1, 0xfe, 0x0, 0x3f,
+ 0xc0, 0x7, 0xf8, 0x0, 0xff, 0xe, 0x1f, 0xe3,
+ 0xe3, 0xfc, 0x7c, 0x7f, 0x8f, 0x8f, 0xf0, 0xe1,
+ 0xfe, 0x0, 0x3f, 0xc0, 0x7, 0xf8, 0x0, 0xff,
+ 0x0, 0x1f, 0xe0, 0x3, 0xfc, 0x0, 0x7f, 0x80,
+ 0xf, 0xf0, 0x1, 0xef, 0x0, 0x79, 0xf0, 0x1f,
+ 0x1f, 0x7, 0xc3, 0xff, 0xf8, 0x1f, 0xfc, 0x0,
+ 0xfe, 0x0,
+
+ /* U+0031 "1" */
+ 0x3, 0xf0, 0x0, 0xfe, 0x0, 0x3f, 0xc0, 0x1f,
+ 0xf8, 0x7, 0xcf, 0x1, 0xf1, 0xe0, 0x3c, 0x3c,
+ 0x7, 0x7, 0x80, 0x80, 0xf0, 0x0, 0x1e, 0x0,
+ 0x3, 0xc0, 0x0, 0x78, 0x0, 0xf, 0x0, 0x1,
+ 0xe0, 0x0, 0x3c, 0x0, 0x7, 0x80, 0x0, 0xf0,
+ 0x0, 0x1e, 0x0, 0x3, 0xc0, 0x0, 0x78, 0x0,
+ 0xf, 0x0, 0x1, 0xe0, 0x0, 0x3c, 0x0, 0x7,
+ 0x80, 0x0, 0xf0, 0x0, 0x1e, 0x0, 0x3, 0xc0,
+ 0x0, 0x78, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xf8,
+
+ /* U+0032 "2" */
+ 0x3, 0xf8, 0x1, 0xff, 0xc0, 0x7f, 0xfe, 0x1f,
+ 0x7, 0xc7, 0xc0, 0x3c, 0xf0, 0x7, 0xbc, 0x0,
+ 0x7f, 0x80, 0xf, 0xf0, 0x1, 0xe0, 0x0, 0x3c,
+ 0x0, 0x7, 0x80, 0x1, 0xf0, 0x0, 0x3c, 0x0,
+ 0xf, 0x80, 0x1, 0xe0, 0x0, 0x7c, 0x0, 0x1f,
+ 0x0, 0x7, 0xc0, 0x1, 0xf0, 0x0, 0x7e, 0x0,
+ 0xf, 0x80, 0x3, 0xe0, 0x0, 0xf8, 0x0, 0x3e,
+ 0x0, 0xf, 0x80, 0x3, 0xe0, 0x0, 0xf8, 0x0,
+ 0x3e, 0x0, 0x7, 0xff, 0xfe, 0xff, 0xff, 0xdf,
+ 0xff, 0xf8,
+
+ /* U+0033 "3" */
+ 0x7f, 0xff, 0x8f, 0xff, 0xf1, 0xff, 0xfe, 0x0,
+ 0x3, 0xc0, 0x0, 0xf0, 0x0, 0x3c, 0x0, 0xf,
+ 0x0, 0x3, 0xc0, 0x0, 0xf0, 0x0, 0x3e, 0x0,
+ 0x7, 0x80, 0x1, 0xfe, 0x0, 0x3f, 0xf0, 0x7,
+ 0xff, 0x0, 0x3, 0xf0, 0x0, 0x1e, 0x0, 0x3,
+ 0xc0, 0x0, 0x3c, 0x0, 0x7, 0x80, 0x0, 0xf0,
+ 0x0, 0x1e, 0x0, 0x3, 0xfc, 0x0, 0x7f, 0x80,
+ 0xf, 0xf0, 0x1, 0xef, 0x0, 0x79, 0xf0, 0x1f,
+ 0x1f, 0x7, 0xc3, 0xff, 0xf0, 0x1f, 0xfc, 0x0,
+ 0xfe, 0x0,
+
+ /* U+0034 "4" */
+ 0x0, 0x1e, 0x0, 0xf, 0x80, 0x3, 0xc0, 0x1,
+ 0xe0, 0x0, 0x78, 0x0, 0x3c, 0x0, 0x1f, 0x0,
+ 0x7, 0x80, 0x3, 0xc0, 0x1, 0xf0, 0x0, 0x78,
+ 0x0, 0x3e, 0x0, 0xf, 0x0, 0x7, 0x80, 0xf3,
+ 0xe0, 0x3c, 0xf0, 0xf, 0x7c, 0x3, 0xde, 0x0,
+ 0xff, 0x0, 0x3f, 0xc0, 0xf, 0xf0, 0x3, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x3,
+ 0xc0, 0x0, 0xf0, 0x0, 0x3c, 0x0, 0xf, 0x0,
+ 0x3, 0xc0, 0x0, 0xf0, 0x0, 0x3c,
+
+ /* U+0035 "5" */
+ 0x7f, 0xff, 0x9f, 0xff, 0xe7, 0xff, 0xf9, 0xe0,
+ 0x0, 0x78, 0x0, 0x1e, 0x0, 0x7, 0x80, 0x1,
+ 0xe0, 0x0, 0x78, 0x0, 0x1e, 0x0, 0x7, 0x8f,
+ 0x81, 0xef, 0xf8, 0x7f, 0xff, 0x1f, 0x87, 0xe7,
+ 0xc0, 0x79, 0xe0, 0x1f, 0x0, 0x3, 0xc0, 0x0,
+ 0xf0, 0x0, 0x3c, 0x0, 0xf, 0x0, 0x3, 0xc0,
+ 0x0, 0xf0, 0x0, 0x3c, 0x0, 0xf, 0xf0, 0x3,
+ 0xde, 0x1, 0xe7, 0x80, 0x78, 0xf8, 0x7e, 0x3f,
+ 0xff, 0x3, 0xff, 0x80, 0x3f, 0x0,
+
+ /* U+0036 "6" */
+ 0x0, 0x3c, 0x0, 0x7, 0x80, 0x0, 0x78, 0x0,
+ 0xf, 0x0, 0x1, 0xe0, 0x0, 0x1e, 0x0, 0x3,
+ 0xc0, 0x0, 0x3c, 0x0, 0x7, 0x80, 0x0, 0x70,
+ 0x0, 0xf, 0x0, 0x1, 0xe7, 0xc0, 0x1f, 0xff,
+ 0x3, 0xff, 0xfc, 0x3f, 0xf, 0xc7, 0xc0, 0x3e,
+ 0x78, 0x1, 0xe7, 0x80, 0x1f, 0xf0, 0x0, 0xff,
+ 0x0, 0xf, 0xf0, 0x0, 0xff, 0x0, 0xf, 0xf0,
+ 0x0, 0xff, 0x0, 0xf, 0xf8, 0x1, 0xe7, 0x80,
+ 0x1e, 0x7c, 0x3, 0xe3, 0xf0, 0xfc, 0x1f, 0xff,
+ 0x80, 0xff, 0xf0, 0x1, 0xf8, 0x0,
+
+ /* U+0037 "7" */
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x0, 0x1e, 0xf0, 0x1, 0xef, 0x0, 0x1e, 0xf0,
+ 0x3, 0xcf, 0x0, 0x3c, 0x0, 0x3, 0x80, 0x0,
+ 0x78, 0x0, 0x7, 0x80, 0x0, 0xf0, 0x0, 0xf,
+ 0x0, 0x0, 0xf0, 0x0, 0x1e, 0x0, 0x1, 0xe0,
+ 0x0, 0x3c, 0x0, 0x3, 0xc0, 0x0, 0x3c, 0x0,
+ 0x7, 0x80, 0x0, 0x78, 0x0, 0x7, 0x80, 0x0,
+ 0xf0, 0x0, 0xf, 0x0, 0x1, 0xe0, 0x0, 0x1e,
+ 0x0, 0x1, 0xe0, 0x0, 0x3c, 0x0, 0x3, 0xc0,
+ 0x0, 0x7c, 0x0, 0x7, 0x80, 0x0,
+
+ /* U+0038 "8" */
+ 0x1, 0xf8, 0x0, 0xff, 0xf0, 0x1f, 0xff, 0x83,
+ 0xf0, 0xfc, 0x3c, 0x3, 0xc7, 0xc0, 0x3e, 0x78,
+ 0x1, 0xe7, 0x80, 0x1e, 0x78, 0x1, 0xe7, 0x80,
+ 0x1e, 0x3c, 0x3, 0xc3, 0xe0, 0x7c, 0x1f, 0xf,
+ 0x80, 0xff, 0xf0, 0x3, 0xfc, 0x0, 0x7f, 0xe0,
+ 0xf, 0xff, 0x3, 0xe0, 0x7c, 0x3c, 0x3, 0xc7,
+ 0x80, 0x1e, 0xf0, 0x0, 0xff, 0x0, 0xf, 0xf0,
+ 0x0, 0xff, 0x0, 0xf, 0xf0, 0x0, 0xff, 0x80,
+ 0x1f, 0x7c, 0x3, 0xe7, 0xe0, 0x7e, 0x3f, 0xff,
+ 0xc0, 0xff, 0xf0, 0x3, 0xfc, 0x0,
+
+ /* U+0039 "9" */
+ 0x3, 0xf8, 0x0, 0xff, 0xf0, 0x1f, 0xff, 0x83,
+ 0xe0, 0xfc, 0x7c, 0x3, 0xe7, 0x80, 0x1e, 0xf8,
+ 0x1, 0xff, 0x0, 0xf, 0xf0, 0x0, 0xff, 0x0,
+ 0xf, 0xf0, 0x0, 0xff, 0x0, 0xf, 0xf8, 0x1,
+ 0xf7, 0x80, 0x1e, 0x7c, 0x3, 0xe3, 0xe0, 0x7e,
+ 0x3f, 0xff, 0xc1, 0xff, 0xfc, 0x7, 0xe7, 0x80,
+ 0x0, 0xf8, 0x0, 0xf, 0x0, 0x1, 0xe0, 0x0,
+ 0x1e, 0x0, 0x3, 0xc0, 0x0, 0x3c, 0x0, 0x7,
+ 0x80, 0x0, 0xf8, 0x0, 0xf, 0x0, 0x1, 0xe0,
+ 0x0, 0x1e, 0x0, 0x3, 0xc0, 0x0,
+
+ /* U+003A ":" */
+ 0x7d, 0xff, 0xff, 0xff, 0xef, 0x80, 0x0, 0x0,
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
+ 0xf7, 0xff, 0xff, 0xff, 0xbe
+};
+
+
+/*---------------------
+ * GLYPH DESCRIPTION
+ *--------------------*/
+
+static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
+ {.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} /* id = 0 reserved */,
+ {.bitmap_index = 0, .adv_w = 403, .box_w = 24, .box_h = 31, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 93, .adv_w = 403, .box_w = 19, .box_h = 31, .ofs_x = 3, .ofs_y = 0},
+ {.bitmap_index = 167, .adv_w = 403, .box_w = 19, .box_h = 31, .ofs_x = 4, .ofs_y = 0},
+ {.bitmap_index = 241, .adv_w = 403, .box_w = 19, .box_h = 31, .ofs_x = 3, .ofs_y = 0},
+ {.bitmap_index = 315, .adv_w = 403, .box_w = 19, .box_h = 31, .ofs_x = 3, .ofs_y = 0},
+ {.bitmap_index = 389, .adv_w = 403, .box_w = 18, .box_h = 31, .ofs_x = 3, .ofs_y = 0},
+ {.bitmap_index = 459, .adv_w = 403, .box_w = 18, .box_h = 31, .ofs_x = 3, .ofs_y = 0},
+ {.bitmap_index = 529, .adv_w = 403, .box_w = 20, .box_h = 31, .ofs_x = 3, .ofs_y = 0},
+ {.bitmap_index = 607, .adv_w = 403, .box_w = 20, .box_h = 31, .ofs_x = 3, .ofs_y = 0},
+ {.bitmap_index = 685, .adv_w = 403, .box_w = 20, .box_h = 31, .ofs_x = 3, .ofs_y = 0},
+ {.bitmap_index = 763, .adv_w = 403, .box_w = 20, .box_h = 31, .ofs_x = 3, .ofs_y = 0},
+ {.bitmap_index = 841, .adv_w = 403, .box_w = 7, .box_h = 24, .ofs_x = 9, .ofs_y = 0}
+};
+
+/*---------------------
+ * CHARACTER MAPPING
+ *--------------------*/
+
+
+
+/*Collect the unicode lists and glyph_id offsets*/
+static const lv_font_fmt_txt_cmap_t cmaps[] =
+{
+ {
+ .range_start = 37, .range_length = 1, .glyph_id_start = 1,
+ .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
+ },
+ {
+ .range_start = 48, .range_length = 11, .glyph_id_start = 2,
+ .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
+ }
+};
+
+
+
+/*--------------------
+ * ALL CUSTOM DATA
+ *--------------------*/
+
+#if LV_VERSION_CHECK(8, 0, 0)
+/*Store all the custom data of the font*/
+static lv_font_fmt_txt_glyph_cache_t cache;
+static const lv_font_fmt_txt_dsc_t font_dsc = {
+#else
+static lv_font_fmt_txt_dsc_t font_dsc = {
+#endif
+ .glyph_bitmap = glyph_bitmap,
+ .glyph_dsc = glyph_dsc,
+ .cmaps = cmaps,
+ .kern_dsc = NULL,
+ .kern_scale = 0,
+ .cmap_num = 2,
+ .bpp = 1,
+ .kern_classes = 0,
+ .bitmap_format = 0,
+#if LV_VERSION_CHECK(8, 0, 0)
+ .cache = &cache
+#endif
+};
+
+
+/*-----------------
+ * PUBLIC FONT
+ *----------------*/
+
+/*Initialize a public general font descriptor*/
+#if LV_VERSION_CHECK(8, 0, 0)
+const lv_font_t jetbrains_mono_42 = {
+#else
+lv_font_t jetbrains_mono_42 = {
+#endif
+ .get_glyph_dsc = lv_font_get_glyph_dsc_fmt_txt, /*Function pointer to get glyph's data*/
+ .get_glyph_bitmap = lv_font_get_bitmap_fmt_txt, /*Function pointer to get glyph's bitmap*/
+ .line_height = 31, /*The maximum line height required by the font*/
+ .base_line = 0, /*Baseline measured from the bottom of the line*/
+#if !(LVGL_VERSION_MAJOR == 6 && LVGL_VERSION_MINOR == 0)
+ .subpx = LV_FONT_SUBPX_NONE,
+#endif
+#if LV_VERSION_CHECK(7, 4, 0)
+ .underline_position = -7,
+ .underline_thickness = 2,
+#endif
+ .dsc = &font_dsc /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */
+};
+
+
+
+#endif /*#if JETBRAINS_MONO_42*/
+
diff --git a/src/displayapp/fonts/jetbrains_mono_bold_20.c b/src/displayapp/fonts/jetbrains_mono_bold_20.c
index f4050db..9174ff4 100644
--- a/src/displayapp/fonts/jetbrains_mono_bold_20.c
+++ b/src/displayapp/fonts/jetbrains_mono_bold_20.c
@@ -900,6 +900,13 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0x7, 0xe0, 0x0, 0x7, 0xf0, 0x0, 0x3, 0xff,
0xff, 0xff, 0xcf, 0xff, 0xff, 0xe0,
+ /* U+F252 "" */
+ 0xff, 0xff, 0xff, 0xfd, 0x80, 0x33, 0x80, 0xe7,
+ 0xff, 0xc7, 0xff, 0xf, 0xfe, 0xf, 0xf8, 0xf,
+ 0xe0, 0xf, 0x80, 0x7f, 0xc0, 0xe3, 0x83, 0x83,
+ 0x86, 0x3, 0x1f, 0xff, 0x3f, 0xfe, 0x7f, 0xfd,
+ 0xff, 0xff, 0xff, 0xf8,
+
/* U+F293 "" */
0x7, 0xe0, 0x3f, 0xe0, 0xfb, 0xe3, 0xf3, 0xe7,
0xe3, 0xdf, 0xd3, 0xf9, 0xb3, 0xf9, 0x4f, 0xf8,
@@ -1184,17 +1191,18 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
{.bitmap_index = 3380, .adv_w = 400, .box_w = 25, .box_h = 12, .ofs_x = 0, .ofs_y = 1},
{.bitmap_index = 3418, .adv_w = 400, .box_w = 25, .box_h = 12, .ofs_x = 0, .ofs_y = 1},
{.bitmap_index = 3456, .adv_w = 400, .box_w = 25, .box_h = 12, .ofs_x = 0, .ofs_y = 1},
- {.bitmap_index = 3494, .adv_w = 280, .box_w = 15, .box_h = 20, .ofs_x = 1, .ofs_y = -3},
- {.bitmap_index = 3532, .adv_w = 200, .box_w = 11, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
- {.bitmap_index = 3561, .adv_w = 280, .box_w = 16, .box_h = 19, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 3599, .adv_w = 400, .box_w = 25, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
- {.bitmap_index = 3665, .adv_w = 360, .box_w = 23, .box_h = 17, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 3714, .adv_w = 320, .box_w = 20, .box_h = 20, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 3764, .adv_w = 400, .box_w = 25, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 3824, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
- {.bitmap_index = 3877, .adv_w = 360, .box_w = 22, .box_h = 20, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 3932, .adv_w = 360, .box_w = 22, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 3985, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = 0}
+ {.bitmap_index = 3494, .adv_w = 240, .box_w = 15, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
+ {.bitmap_index = 3530, .adv_w = 280, .box_w = 15, .box_h = 20, .ofs_x = 1, .ofs_y = -3},
+ {.bitmap_index = 3568, .adv_w = 200, .box_w = 11, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
+ {.bitmap_index = 3597, .adv_w = 280, .box_w = 16, .box_h = 19, .ofs_x = 1, .ofs_y = -2},
+ {.bitmap_index = 3635, .adv_w = 400, .box_w = 25, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
+ {.bitmap_index = 3701, .adv_w = 360, .box_w = 23, .box_h = 17, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 3750, .adv_w = 320, .box_w = 20, .box_h = 20, .ofs_x = 0, .ofs_y = -2},
+ {.bitmap_index = 3800, .adv_w = 400, .box_w = 25, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
+ {.bitmap_index = 3860, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
+ {.bitmap_index = 3913, .adv_w = 360, .box_w = 22, .box_h = 20, .ofs_x = 0, .ofs_y = -2},
+ {.bitmap_index = 3968, .adv_w = 360, .box_w = 22, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
+ {.bitmap_index = 4021, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = 0}
};
/*---------------------
@@ -1205,8 +1213,8 @@ static const uint16_t unicode_list_2[] = {
0x0, 0x16, 0x23, 0x26, 0x27, 0x28, 0x39, 0x47,
0x4a, 0x4b, 0x4c, 0x50, 0x68, 0x94, 0x128, 0x184,
0x1e5, 0x1fb, 0x21d, 0x23f, 0x240, 0x241, 0x242, 0x243,
- 0x292, 0x293, 0x2f1, 0x3dc, 0x3fc, 0x45c, 0x54a, 0x55f,
- 0x59e, 0x59f, 0x6a8
+ 0x251, 0x292, 0x293, 0x2f1, 0x3dc, 0x3fc, 0x45c, 0x54a,
+ 0x55f, 0x59e, 0x59f, 0x6a8
};
/*Collect the unicode lists and glyph_id offsets*/
@@ -1222,7 +1230,7 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
},
{
.range_start = 61441, .range_length = 1705, .glyph_id_start = 160,
- .unicode_list = unicode_list_2, .glyph_id_ofs_list = NULL, .list_length = 35, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
+ .unicode_list = unicode_list_2, .glyph_id_ofs_list = NULL, .list_length = 36, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
}
};