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_mode
are 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_t
to 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