From 1067d04c038cd05580b33a9764bca08e160a72a8 Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Mon, 21 Sep 2020 11:57:20 +0200 Subject: [PATCH] fix font laoder supprt LV_FONT_FMT_TXT_LARGE --- CHANGELOG.md | 1 + src/lv_font/lv_font_loader.c | 2 +- tests/lv_test_core/lv_test_font_loader.c | 6 +++--- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 298d77614..aa00067da 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ - Fix divisioin by zero in draw_pattern (lv_draw_rect.c) if the image or letter is not found - Fix drawing images with 1 px height or width - Fix selectiion of options with non-ASCII letters in dropdown list +- Fix font loader to support LV_FONT_FMT_TXT_LARGE ## v7.4.0 (01.09.2020) diff --git a/src/lv_font/lv_font_loader.c b/src/lv_font/lv_font_loader.c index cb9e78a21..ba89955a6 100644 --- a/src/lv_font/lv_font_loader.c +++ b/src/lv_font/lv_font_loader.c @@ -225,7 +225,7 @@ static int read_bits_signed(bit_iterator_t * it, int n_bits, lv_fs_res_t * res) { int value = read_bits(it, n_bits, res); if(value & (1 << (n_bits - 1))) { - for(int bit = n_bits; bit < 8; ++bit) { + for(int bit = n_bits; bit < 16; ++bit) { value |= (1 << bit); } } diff --git a/tests/lv_test_core/lv_test_font_loader.c b/tests/lv_test_core/lv_test_font_loader.c index 3b3f6321a..7158d0823 100644 --- a/tests/lv_test_core/lv_test_font_loader.c +++ b/tests/lv_test_core/lv_test_font_loader.c @@ -28,7 +28,7 @@ * STATIC PROTOTYPES **********************/ -#if LV_USE_FILESYSTEM && LV_FONT_FMT_TXT_LARGE == 0 +#if LV_USE_FILESYSTEM static int compare_fonts(lv_font_t * f1, lv_font_t * f2); #endif @@ -50,7 +50,7 @@ extern lv_font_t font_3; void lv_test_font_loader(void) { -#if LV_USE_FILESYSTEM && LV_FONT_FMT_TXT_LARGE == 0 +#if LV_USE_FILESYSTEM lv_font_t * font_1_bin = lv_font_load("f:font_1.fnt"); lv_font_t * font_2_bin = lv_font_load("f:font_2.fnt"); lv_font_t * font_3_bin = lv_font_load("f:font_3.fnt"); @@ -67,7 +67,7 @@ void lv_test_font_loader(void) #endif } -#if LV_USE_FILESYSTEM && LV_FONT_FMT_TXT_LARGE == 0 +#if LV_USE_FILESYSTEM static int compare_fonts(lv_font_t * f1, lv_font_t * f2) { lv_test_assert_true(f1 != NULL && f2 != NULL, "font not null");