v8.3.0 is released
Written by
kisvegabor
on
Overview
- Layers Support transforming (zoom and rotate) any widgets and their children drawn by LVGL. To do this LVGL renders the transformed widgets into a layer and draws that layer as an image applying all the transformations. Layers are also used when
opa(notbg_opa,border_opa, etc) andblend_modeare set. This way nested objects are blended as one layer to avoid color bleeding. See more here. - inherit and initial style properties Besides setting “normal values” for style properties now you can set them to
inherit(inherit the parent’s value) andinitial(set the system default). See more here - NXP-PXP and VGLITE GPU support The support for NXP GPUs are added again
- Color font support You can use emojis and images in texts with this great new features. See more here.
- ARM2D GPU support Get support for Arm’s Microcontroller 2D Graphics Acceleration, e.g. Helium based acceleration, DMA-350 based acceleration etc.
- PubSub messaging A publisher-subscriber based messaging system is added to make communication between components easier. See more here.
- Pinyin IME Add support for Pinyin IME Chinese input. See more here.
- render_start_cb A new callback is added to
lv_disp_drv_tto indicate when the rendering starts. It’s useful to make synchronization, e.g. wait for a TE signal.
New Features
- feat(ime_pinyin): add API to support 9-key input mode
3447 - feat(font): add font placeholder drawing configuration
3446 - feat(fsdrv): add posix lseek() error checking
3444 - feat(misc): add asynchronous call function cancellation function
3439 - feat(ime_pinyin): add API to use Pinyin IME(Chinese input)
3408 - feat(style) add ‘inherit’ and ‘initial’ CSS properties
3390 - feat(porting): add flushing control to the template
3384 - feat(anim): add deleted callback (#3279)
3295 - feat(cmsis-pack): monthly update for May
3394 - feat(textarea): make it possible to customize the bullet character
3388 - feat(disp): add a temporary invalidation disable interface
3378 - feat(group): add edge callbacks when trying to move focus past beginning or end
3374 - feat(benchmark): make lvgl render at the highest frame rate
3352 - feat(rt-thread): allow users to control refresh period in the lvgl thread
3375 - feat(cmsis-pack): Monthly update for May (alpha)
3359 - feat(demos): add a callback for benchmark
3353 - feat(gpu): Update lv_gpu_arm2d with new features
3340 - feat(draw): improve acceleration for LV_IMG_CF_ALPHA_8BIT
3337 - feat(anim): add the function of getting global animation refresher timer
3331 - feat(demo): add Weighted FPS and Opa speed log output
3326 - feat(gpu): Update gpu arm 2d
3320 - feat(cmsis-pack): Monthly update for April
3300 - feat(fsdrv) fix issues for win32 backends
3284 - feat(cmake-build): Option to allow building shared libraries.
3278 - feat(hal): add render_start_cb to disp_drv
3274 - feat(cmsis-pack): monthly update for April (v1.0.3-alpha)
3271 - feat(benchmark): add trace output for running a specific scenario
3245 - feat(env_support): cmsis pack monthly update
3209 - feat(tabview): support vertical scrolling
3184 - feat(span): add an interface for setting the number of lines
3200 - feat(indev): add possibility to enable/disable all input devices at once
3179 - feat(font): add imgfont - can be used to add emojis to label/span
3160 - feat(gpu): add gpu arm2d
3162 - feat(dma2d): add lv_draw_stm32_dma2d_buffer_copy function
3147 - feat(disp): add screen out animations
3081 - feat(menu): make menu widget more compatible with encoder
3061 - feat(label): added animation style property to apply it to circular scrolling animation of label widget
3128 - feat(script): add pre-commit configuration for code formatting
3092 - feat(refr): prevents dirty areas from being modified during rendering
3107 - feat(log): improve lv_log and add log the result from lv_demo_benchmark
3084 - feat(fragment): add fragment manager (a UI Controller concept)
2940 - feat(porting): add a macro lv_run_timer_handler_in_period to simplify porting
3063 - feat(gpu): reattach nxp pxp vglite accelerators(#3322)
029eef7 - feat(draw): support transforming widgets and improfe sw transform
318146a - feat(msg): add publisher-subscriber messaging
79a29d7 - feat(benchmark): add an API to run specific scene (#3089)
305ad00 - feat(gpu): add SWM341 gpu support (synwit)
07b7eea - feat(arc): add lv_arc_align_obj_to_angle and lv_arc_rotate_obj_to_angle
a76bb70 - feat(draw): add draw_ctx->buffer_copy
d034511 - feat(dropdown): add lv_dropdown_get_option_index
9997fb0 - feat(tabview) add API to rename tab.
2c9695a - feat(indev): send LV_EVENT_PRESS_LOST on release with wait_until_release
cc18518 - feat(style) add ‘inherit’ and ‘initial’ CSS properties (#3390)
9a48de0 - feat(draw): improve acceleration for LV_IMG_CF_ALPHA_8BIT (#3337)
8d3c41d - feat(label): added animation style property to apply it to circular scrolling animation of label widget (#3128)
340d45c - feat(gridnav): add lv_gridnav_set_focused
b6d2daa
Performance
- perf(draw): speed up non normal blend modes
5a06fce - perf(draw): minor optimiziation in point transformation
c6c2864 - perf(layer): cache the layer_type
ac2e2f1
Fixes
- fix(draw): conflict with external ALIGN define
3336 - fix(arc): fix bug with LV_ARC_MODE_REVERSE (#3417)
3418 - fix(fragment): memory leak of fragments #3438
3442 - fix(draw): solve memory leaking issue
3437 - fix(gridnav) correct logic in find_last_focusable
3423 - fix(examples) correct comment in slider example
3419 - fix(sdl): add transformation support for the SDL backend
3403 - fix(bmp): fix with LV_COLOR_16_SWAP
3412 - fix(sdl): fix LRU, reported in #3402
3404 - fix(draw) avoid use-after-free when drawing arcs
3399 - fix(subpx): fix subpixel rendering font is not displaying bug
3387 - fix(style): reset style lookup table after gc sweep/lv_deinit
3385 - fix(benchmark): fix the issue that wrong scene number is used
3372 - fix(draw): fix colour supports for indexed and alpha-only
3371 - fix(mem): fix TLSF returning the wrong pointer when the requested size is too large
3325 - fix(demo): fix warning.
3344 - fix(config): add LV_GPU_SDL_LRU_SIZE
3348 - feat(draw): improve acceleration for LV_IMG_CF_ALPHA_8BIT
3337 - fix(txt): fix returned value of lv_txt_iso8859_1_next(…, NULL)
3338 - fix(benchmark): remove redundant string for the small screens
3335 - fix(chart): fix accessing uninitialized point_area
3327 - fix(config): add LV_LAYER_SIMPLE_BUF_SIZE to Kconfig
3312 - fix(config): Keep the sequence of widget in order
3314 - fix(config): fix typo in LV_USE_PERF_MONITOR and LV_USE_MEM_MONITOR
3313 - fix(refr): initializing row_cnt is to silence the warning
3309 - fix(meter): fix typo
3308 - fix(draw): update Makefiles
3303 - fix(lodepng): fix NULL pointer access
3307 - fix(Kconfig): change the type of LV_FS_STDIO_LETTER from string to int
3282 - fix(demo): fix Wformat warning
3290 - fix(snapshot): add missing ASSERT checks
3292 - fix(Kconfig): Add LV_USE_GRIDNAV and LV_USE_FRAGMENT to Kconfig
3270 - fix(msgbox): do not execute init obj when obj == NULL
3264 - fix(menu): use LV_ASSERT_MALLOC check for new_node
3263 - fix(canvas):image cache may expire after set canvas’s buff
3267 - fix(obj_style): prevent access to class null pointer
3252 - fix(png): fix possible memory leak when decoding fails
3249 - fix(libs): fix possible buffer underflow caused by extension matching
3250 - fix(fs): track multiple directory handles with win32 backends
3243 - fix(png): use LV_IMG_CF_TRUE_COLOR_ALPHA instead of LV_IMG_CF_RAW_ALPHA
3212 - fix(Keil-AC5): slience warnings in Keil-AC5
3221 - fix(meter): fix infinite loop caused by loop variable type mismatch
3232 - fix(chart): remove invalid decision branches
3231 - fix(gradient): assert before dividing by 0
3228 - fix(calendar): fix infinite loop caused by loop variable type mismatch
3230 - fix(flex): assert before dividing by 0
3237 - fix(hal): fix LV_ASSERT_MALLOC wrong placement
3236 - fix(disp): fix missing null pointer judgment
3238 - fix(obj_class): fix possible memory leak when the default disp is NULL
3235 - fix(draw_sw_letter): fix incorrect use of sizeof for a pointer
3234 - fix(indev): fix null pointer access caused by typo
3229 - fix(event): remove invalid decision branches
3233 - fix(draw_mask): remove invalid decision branches
3225 - fix(spinbox): remove invalid judgment
3227 - fix(gradient): remove invalid decision branches
3226 - fix(txt): return 0 if letter_uni is out of range
3224 - fix(calendar): fix possible array access out of bounds
3223 - fix(style): remove useless null pointer judgment
3222 - fix(obj): scrolling exception when use lv_obj_set_parent()
3210 - fix(libs): fix memcmp memory access overflow
3205 - fix(png): fix possible file leaks
3204 - fix(docs): rename task-handler.md to timer-handler.md
3203 - fix(lru): Fix use of undefined variables
3181 - fix(rt-thread): Sconscript use LOCAL_CFLAGS to replace LOCAL_CCFLAGS
3196 - fix(make) make files under draw/gpu
3202 - fix(docs-CN):fix broken links to docs in dir get-started
3195 - fix broken links to docs in dir get-started
3190 - fix(indev): fix warning about formatting uint32_t with %d
3193 - fix(Kconfig): move LV_USE_IMGFONT to others menu
3176 - fix(draw): src_buf_tmp will be NULL when LV_DRAW_COMPLEX is ‘0’
3163 - fix(span): align the baselines
3164 - fix(menu): fix crash on delete
3154 - fix(Kconfig): add missing LV_USE_THEME_MONO
3146 - fix(demo/stress): remove the unused assets
3139 - fix(jpg): swap high and low bytes when macro LV_COLOR_16_SWAP is 1
3138 - fix(script): in lv_conf_internal fix some widget dependencies when using Kconfig
3119 - fix(demo): minor fix for benchmark
3114 - fix(misc): in lv_map() handle if maximum value less than minimum value
3113 - fix(extra): adjust image decoder initialization order
3085 - fix(chart): optimize chart invalidation
3028 - fix(refr): fix performance monitor NULL pointer access
3105 - fix(misc): Remove duplicate declaration of _lv_log_add.
3103 - fix(gridnav): get key code from the actual event
3101 - fix(draw_rect): delete STDC_VERSION to ensure C++ compatibility
3099 - fix(font):draw placeholder if get_glyph_dsc() returns false
3000 - fix(conf): work around GCC bug
3082 - fix(fsdrv): replacing sprintf with lv_snprintf for safety
3079 - fix(cmsis-pack): add PIDX for cmsis-pack
3064 - feat(gpu): add SWM341 gpu support (synwit)
07b7eea - fix(fs): fix cached read and add unit test for lv_fs
98660a8 - fix(table): invalidate only the changed cell
306fa19 - fix(draw): handle non BLEND_MODE_NORMAL for ARGB drawing
9ac8ce6 - fix(draw): revert handling of style_opa on not MAIN parts
51a7a61 - fix(draw): clip the bg img to the rectangle’s area in lv_draw_sw_rect
77d726e - fix(obj): fix LV_OBJ_FLAG_OVERFLOW_VISIBLE
c742f2c - fix(scroll): do not fire scroll begin/end event on every scroll step
25ce6e3 - fix(indev): do not send keys to objects in disabled state
b0a46c4 - fix(disp): make lv_scr_load work better with lv_scr_load_anim and auto_del = true
52287fd - fix(draw): create intermediate layer for blend modes too
8b15007 - fix(group): in lv_group_remove() fix if the object to focus is deleted
72cb683 - fix(draw): be sure angle values are in the correct range
e624b90 - fix(scroll): send LV_EVENT_SCROLL_BEGIN/END with no animation too
777fe1e - fix(arc): fix arc image drawing issue
7153e3f - fix(refr): fix memory write out of bounds issue
13c99fc - fix(gif): fix rare issue when drawing the gif’s background
b1e2c06 - fix(chart): fix misaligned horizontal tick lines on bar charts
4572a0c - fix(font): use 0 width for non printable characters
7cf5709 - revert(group): 72cb683c799f65cd4fbae22dafc3a35c123bb66b
b7b22c1 - fix(keyboard): don’t show popovers on map change
ac202e7 - fix(refr): consider masks with LV_OBJ_FLAG_OVERFLOW_VISIBLE
a7f9dfa - fix(draw): fix the calculation of the transformed coordinates
76de7c6 - fix(style): fix heap use after free with transition styles
d9ae58b - fix(tabview, tileview): fix scrolling
22854ff - fix(draw): fix disp_bg_img drawing
dea75d9 - fix(textarea): fix max length handling
127d8e8 - fix(btnmatrix): fix extra draw size calculation to not clip shadow
7ada130 - fix(indev): scroll_ throw_vect cannot converge to 0 when vect is negative
e5c11f1 - fix(theme): make the basic theme even more simpler
62d6f3c - fix(color): color mix rounding error
523062b - fix(style): _lv_style_prop_lookup_flags tell all flags for LV_STYLE_PROP_ANY
e53f602 - fix(list): use for icon
b171f7d - fix(layout): fix the handling of FLOATING children
48728a7 - fix(style): make color filter inherited
5546b9d - fix(spinbox): set its default width in its class
3d92972 - fix: fix warning
6c00552 - fix(draw): fix transformations on subdivided areas
cbff8e8 - fix(slider): fix left knob in ranged mode
17f5e0a - fix(Kconfig): allow unchecking LV_CONF_SKIP
f3a07a3 - fix(style): fix using width for both width and height in radius transition
6acbdaa - fix(dropdown): fix scrolling when options are CENTER aligned
e651383 - fix(grid): fix dead branch
46bf27d - fix(hal): disable driver->screen_transp by default regardless to LV_COLOR_SCREEN_TRANSP
ff7204e - fix(theme): fix mono theme init
5ec6694 - fix(bmp) fix typo in BPP condition
cbc38af - fix(theme): in the basic theme show the textarea cursor only in focuses state
bb03fb1 - fix(draw): fix img recolor
23eecce - fix(theme) add disabled style to textarea in the default theme
00f6759 - fix(meter): improve the precision of tick line drawing
0255c6d - fix(gpu): fix warning with NXP GPU
6be43b8 - fix(color): compensate rounding error during blending
42d9c07 - fix(examples) use type-safe function for retrieving event param
71d535d - fix(draw) ensure variable is initialized to avoid warning
276f28a - feat(draw): improve acceleration for LV_IMG_CF_ALPHA_8BIT (#3337)
8d3c41d - fix(spinbox): rename lv_spinbox_set_pos to lv_spinbox_set_cursor_pos
a99eb6b - fix(layout): use uint16_t LV_LAYOUT_FLEX/GRID
c596a36 - fix(event) avoid using a boolean as a pointer
06fff4b - fix(theme): properly disable transitions if LV_THEME_DEFAULT_TRANSITION_TIME==0
242112b - fix(scroll): fix scroll to view to the left
7c74f65 - fix(fs): mark the read cache as invalid by default
54f9987 - fix(menu): fix crash on delete (#3154)
a6c4c13 - fix(roller): fix unexpected jump in infinite mode
18f2d78 - fix(conf): work around GCC bug (#3082)
c6b34bc
Examples
- example(ime_pinyin): improved lv_example_ime_pinyin_1
3428 - example(imgfont): fix lvgl.h include path
3405 - example(btnmatrix): update lv_example_btnmatrix_2 to expicitly check which part is drawn
6b2eac1 - example(slider): make lv_example_slider_3 work with dark theme too
4a766c5 - example(span): avoid ambiguous meaing
7bb09e3 - demo(benchmark): add LV_DEMO_BENCHMARK_RGB565A8 option
afaa8c9
Docs
- docs(indev): add comment in input device part
3422 - docs(slider) mention that VALUE_CHANGED is not sent on release
3397 - docs(readme): add version portuguese brazilian
3349 - docs(pc-simulator): add MDK with FastModel
3318 - docs(intro): update for v8.2.0
3316 - docs(readme) update link to the PlatformIO Registry
3296 - docs(gesture): fix typo lv_indev_act() -> lv_indev_get_act()
3291 - docs(scroll) add information about scroll coordinates
3088 - docs(msgbox) fix typo
3095 - docs(scroll): use LV_DIR_VER instead of LV_DIR_TOP
3066 - docs: rearrange the get-started section
8a81532 - docs: add section for renderers and gpus
378aaa6 - docs collapse APIs by default
ebd20af - docs(images): fix notes about breaking change inf v8.2
9a1e385 - docs(sim): add link to qt-creator
88bbef1 - docs(chart): describe how to set the space between columns
746917d - docs(README): fix broken link
c2c44c6 - docs(examples) avoid redirects when loading examples
d367bb7 - docs(gesture): describe how prevent sending events after a gesture
65db5c9 - docs(get-started): add quick-overview to the index
91ebf81 - docs(others): add imgfont to the index
656a0e5
CI and tests
- ci(slider): add unit test
3198 - test(line): add unit tests for line widget
3104 - test(table): replicate issue when reducing table cells
3121 - test(textarea): add unit test
3074 - test(table): add unit tests
3040 - ci(docs) replace use of sed with proper configuration variables
1816fa5 - ci add Makefile test
ea79cee - test(mem) add test for #3324
9700664 - test(img): fix image error diff handler
48d87e1 - ci update docs builder to work with Python 3.10
a3d66c9 - ci make sure LVGL assertions cause tests to fail
b83c5aa - ci remove formatting comment
d345f76 - ci don’t run workflows twice on PRs
fcc1152 - ci bump test timeout to 30 seconds [skip ci]
85e3e23 - ci limit tests to 15 seconds
003f18f - ci(makefile) fix typo in GitHub action
a101e70 - ci(switch): fix mem leak test
8481e3a - ci(stale) bump action version
5977eef - ci use GCC problem matcher on ARM tests as well
9fcefe5