Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
128 KiB
Changelog
v8.2.0 31 January 2022
Overview
Among many fixes and minor updates these are the most important features in v8.2.0:
- Abstract render layer to make it easier to attach external draw engines
- Add
LV_FLAD_OVERFLOW_VISIBLE
. If enabled the children of an object won't be clipped to the boundary of the object - Add ffmpeg decoder support to play videos and open a wide variety of image formats
- Add font fallback support
- Add gradient dithering support
- Add "monkey test"
- Add cmsis-pack support
- Add Grid navigation (
lv_gridnav
)
The GPU support for NXP microcontrollers is still not updated to the new draw architecture. See #3052
Breaking Changes
- ⚠️ feat(fs): add caching option for lv_fs-read
2979
- ⚠️ feat(span): lv_spangroup_get_expand_width() adds a parameter
2968
- ⚠️ arch(draw): allow replacing the draw engine
db53ea9
- ⚠️ indexed images are not chroma keyed. Use the alpha chaneel instead.
Architectural
- arch(draw): separate SW renderer to allow replacing it
2803
- arch: merge lv_demos
5414652
- arch(sdl): migrated to use new backend architecture
2840
- arch(env): move rt-thread into env_support folder
3025
- arch(env): arch(env): move the cmake folder into the env_support folder
773d50f
- arch(env): move the zephyr folder into the env_support folder
4bd1e7e
New Features
- feat(cmsis-pack): prepare for lvgl v8.2.0 release
3062
- feat(gridnav): add lv_gridnav
2911
- feat: update the cmsis-pack to 0.8.3
3021
- feat(sdl): support rounded images
3012
- feat(cmsis-pack): add cmsis-pack support
2993
- feat(event): add preprocessing and stop bubbling features for events
3003
- feat(draw): add gradient dithering support
2872
- feat(symbols): add guards to LV_SYMBOL_* to allow redefining them
2973
- feat(obj): subdivide LV_OBJ_FLAG_SCROLL_CHAIN into ...CHAIN_HOR and ...CHAIN_VER
2961
- feat(draw): add draw_bg callback to draw_ctx #2934
2935
- feat(docs): add Chinese readme
2919
- feat(txt): add used_width parameter to _lv_txt_get_next_line()
2898
- feat(others) add monkey test
2885
- feat(rlottie): add animation control options
2857
- feat(lv_hal_indev): add missing lv_indev_delete()
2854
- feat(freetype): optimize memory allocation
2849
- feat(Kconfig): add FreeType config
2846
- feat(widgets): add menu widget
2603
- feat(refr): add reset function for FPS statistics
2832
- feat(Kconfig): add monitor position configuration
2834
- feat(examples) add micropython versions of the external library examples
2762
- feat(freetype): support bold and italic
2824
- feat(font) add fallback support and mem. font load option to FreeType
2796
- feat(lib) add ffmpeg video and image decoder
2805
- feat(obj): add LV_OBJ_FLAG_OVERFLOW_VISIBLE
e7ac0e4
- feat(scrollbar): add more control over scrollbar paddings
4197b2f
- feat(dropdown): keep the list on open/close for simpler styling
9d3134b
- feat(qrcode) use destructor instead of lv_qrcode_delete()
318edd8
- feat(disp) allow decoupling the disp_refr timer
85cc84a
- feat(obj): add lv_obj_get_event_user_data()
53ececc
- feat(obj) add LV_OBJ_FLAG_SCROLL_WITH_ARROW
70327bd
- feat(slider): consider ext_click_area on the knob with LV_OBJ_FLAG_ADV_HITTEST
9d3fb41
Performance
- perf(sdl): optimize the use of SDL_RenderSetClipRect
2941
- perf(color): add faster lv_color_hex function
2864
Fixes
- fix(micropython) update examples for new API
3059
- fix: increase default value of LV_MEM_SIZE for lv_demo_widgets #3057
3058
- fix(cmsis-pack): fix issue #3032
3056
- fix(porting): add missing function prototypes
3054
- fix(kconfig): add missing default values
3050
- fix(canvas): force canvas to use sw draw
3045
- fix(rt-thread): use ARCH_CPU_BIG_ENDIAN to replace RT_USING_BIG_ENDIAN
3044
- fix(gradient): general cleanup and fix for alignment issues
3036
- fix(draw): rendering issues for vertical gradient with and without dithering
3034
- fix uninitialized variable
3033
- fix(lru): lower dependency for standard C functions
3024
- fix(env_support): move cmsis-pack to env_support folder
3026
- fix(doc): full covering opacity is 255, not 256
3022
- fix uninitialized variables
3023
- fix various issues for esp32
3007
- fix(sdl): fix clipped image drawing
2992
- fix(draw): missed bg_color renaming in the draw function
3002
- fix(porting): fix typo and an unmatched prototype
2998
- fix(conf) add missing LV_LOG_LEVEL default definition
2996
- fix(refr): crash if full_refresh = 1
2999
- fix(Kconfig): adapt to lvgl's built-in demos
2989
- fix(Makefile): compilation errors
2944
- fix(rlottie): fix variable name
2971
- fix(group): in lv_group_del() remove group from indev (lvgl#2963)
2964
- fix(obj): old parent's scroll is not updated in lv_obj_set_parent()
2965
- fix(fatfs) add missing cast
2969
- fix(snapshot) fix memory leak
2970
- fix(examples) move event callback registration outside loop in
lv_example_event_3
2959
- fix(canvas): off by one error in size check in lv_canvas_copy_buf
2950
- fix(indev) add braces to avoid compiler warning
2947
- fix: fix parameter order in function prototypes
2929
- fix(style):add const qualifier for lv_style_get_prop()
2933
- fix(dropdown): in lv_dropdown_get_selected_str handle if there are no options
2925
- fix: lv_deinit/lv_init crash or hang
2910
- fix(rt-thread): improve the structure
2912
- fix: removed string format warnings for int32_t and uint32_t
2924
- fix(lv_fs_win32): add missing include of <stdio.h>
2918
- fix: use unsigned integer literal for bit shifing.
2888
- chore(lottie) move rlottie_capi.h to lv_rlottie.c
2902
- fix(qrcodegen) add brackets around assert calls
2897
- fix(list) guard image creation with LV_USE_IMG
2881
- fix(snapshot): make fake display size big enough to avoid align issue.
2883
- fix(sdl) correct makefile
2884
- fix(draw): fix set_px_cb memory write overflow crash.
2882
- fix(freetype): fix memset error
2877
- fix(span): fix align and break word
2861
- fix(refr): swap buffers only on the last area with direct mode
2867
- fix(arc) free memory when drawing full-circle arc
2869
- fix(indev): update lv_indev_drv_update to free the read_timer
2850
- fix(draw): fix memory access out of bounds when using blend subtract
2860
- fix(chart) add lv_chart_refresh() to the functions which modify the data
2841
- fix(conf) mismatched macro judgment
2843
- fix(ffmpeg): when disabled LV_FFMPEG_AV_DUMP_FORMAT makes av_log quiet
2838
- fix(rt-thread): fix a bug of log
2811
- fix(log): to allow printf and custom_print_cb to work at same time
2837
- fix(keyboard): add missing functions
2835
- fix(checkbox) remove unnecessary events
2829
- fix(qrcode): replace memcpy() with lv_memcpy() and delete useless macros
2827
- fix(font) improve builtin font source files generation process
2825
- fix(CMake) split CMakeLists.txt, add options, includes and dependencies
2753
- fix(obj): make lv_obj_fade_in/out use the current opa as start value
2819
- fix(qrcode):minimize margins as much as possible
2804
- fix(scripts): switch all scripts to python3
2820
- fix(event): event_send_core crash in special case.
2807
- fix(Kconfig) remove duplicate LV_BUILD_EXAMPLES configuration
2813
- fix(obj): in obj event use the current target instead of target
2785
- fix(draw_label): radius Mask doesn't work in Specific condition
2784
- fix(draw_mask): will crash if get_width/height < 0
2793
- fix(theme) make the basic theme really basic
a369f18
- fix(arc): fix knob invalidation
345f688
- fix(theme): add arc, spinner and colorwheel to basic theme
adc218a
- fix(conf) define LV_LOG_TRACE_... to 0 in lv_conf_internal.h to avoid warnings
305284c
- fix(draw): consider opa and clip corner on bg_img
d51aea4
- fix(draw): add grad_cache_mem to GC_ROOTs
138db9c
- fix(bar, slider): fix shadow drawing on short indicators
364ca3c
- fix(theme): fix theme initialization issue introduced in
6e0072479
d231644
- fix(draw): add lv_draw_sw_bg
49642d3
- fix(draw) border_draw crash is special case
075831a
- fix(theme): fix crash in lv_theme_basic_init
ca5f04c
- fix(draw): fix indexed image drawing
5a0dbcc
- fix(roller): clip overflowing text
5709528
- fix(align) fix LV_SIZE_CONTENT size calculation with not LEFT or TOP alignment
9c67642
- fix(draw): futher bg_img draw fixes
81bfb76
- fix(btnmatrix): keep the selected button even on release
d47cd1d
- fix(sw): make knob size calculation more intuitive
5ec532d
- fix(switch): make knob height calculation similar to slider
0921dfc
- fix(span): explicitly set span->txt to the return value of lv_mem_realloc(#3005)
a9a6cb8
- fix(example): update LVGL_Arduino.ino
d79283c
- fix(draw) simplify how outline_pad is compnesated
81d8be1
- fix(obj) make LV_OBJ_FLAG_SCROLL_CHAIN part of the enum instead of define
f8d8856
- fix(label): dot not add dots if the label height > 1 font line height
4d61f38
- fix(event): crash if an object was deleted in an event
9810920
- fix(build) fix sdl build with make
43729d1
- fix(config): fix anonymous choice
71c739c
- chore(docs): fix lv_list_add_text
a5fbf22
- fix(png) check png magic number to be sure it's a png image
1092550
- fix(btnmatrix): fix crash if an empty btnmatrix is pressed
2392f58
- fix(mem/perf monitor): fix issue introduced in #2910
0788d91
- fix(layout) fix layout recalculation trigger in lv_obj_add/clear_fleg
ee65410
- fix(obj) fix lv_obj_fade_in
4931384
- fix(draw): fix clipping children to parent
5c98ac8
- fix: remove symlinks to be accepted as an Ardunio library
6701d36
- chore: fix typos in FATFS config
74091c4
- fix(refr): fix missed buffer switch in double full-screen buffer + direct_mode
731ef5a
- chore(qrcode): fix warnings
e9d7080
- docs(event): tell to not adjust widgets in draw events
933d67f
- fix(table, chart): fix memory leaks
8d52de1
- fix(event): handle object deletion in indev->fedback_cb
bfc8edf
- fix(roller): snap on press lost
fa9340c
- fix(dropdown) be sure the list is the top object on the screen
cb7fc2b
- fix(img) fix invalidation issue on transformations
d5ede0e
- fix(obj) fix comments of lv_obj_set_pos/x/y
b9a5078
Examples
Docs
- docs(demos) update information to reflect new layout
3029
- docs(porting): remove duplicated content
2984
- docs(display) fix typo
2946
- docs(get-started) add introduction for Tasmota and Berry
2874
- docs fix spelling, parameter descriptions, comments, etc
2865
- docs: spelling fixes
2828
- docs(style) minor style fix
2818
- docs(porting/display) fix formatting
2812
- docs(roadmap) update
084439e
- docs(widgets) fix edit links
7ed1a56
- docs(contributing) update commit message format
1cd851f
- docs(porting): add more details about adding lvgl to your project
6ce7348
- docs(indev): add description about gestures
2719862
- docs(style): describe const styles
28ffae8
- docs(faq): add "LVGL doesn't start, nothing is drawn on the display" section
0388d92
- docs add demos
02a6614
- docs(fs): update fs interface description to the latest API
285e6b3
- docs(format) let wrap
4bf49a8
- docs(imgbtn) fix typo
d792c5f
- docs(porting) clarify that displays must be registered before input devices
1c64b78
- docs(event) fix lv_event_get_original_target vs lv_event_get_current_target
cdd5128
- docs(events) rename LV_EVENT_APPLY to LV_EVENT_READY (#2791)
bf6837f
- docs(gpu): link style properties and boxing model
6266851
- docs(gesture): clarify gesture triggering with scrolling
e3b43ee
- docs(contributing): remove the mentioning of the dev branch
00d4ef3
- docs(bar) fix default range
eeee48b
- docs(event): tell to not adjust widgets in draw events
933d67f
- docs(switch) improve wording
b4986ab
- docs(font) fix example to match v8
2f80896
CI and tests
- test(bar): add unit tests
2845
- test(switch): add initial unit test
2794
- test(demo) add tests for widget and stress demos
3bd6ad8
- test(dropdown) fix to pass again
918b3de
- test add support for using system heap
446b1eb
- ci remove formatting request workflow
6de89e4
- ci initial support for cross-architecture tests
7008770
- ci create handler for formatting requests
7af7849
- test(style) add test for gradient
da8f345
- test(event) add test for #2886
51ef9c2
- ci add workflow to check code formatting
a2b555e
- ci attempt to speed up cross tests
80408f7
- ci apply my updates to the verify-formatting action
02f02fa
- ci: add arduino linter action
f79b00c
- ci update action
be9722c
- ci more formatting action updates
1f6037c
- ci disable LeakSanitizer on dockerized tests
c9e1927
- ci one last try at this for tonight
dddafae
- ci try alternate checkout mechanism
cb3de30
- test(style) fix compile error
ba083df
- test(template) simplify _test_template.c
b279f63
- ci force ccache to be saved every time
a7c590f
- ci switch to codecov v2
6b84155
- ci more debugging for formatting action
2f8e4bc
- ci inline apt-get commands
90e2b9f
- ci(micropython) use ESP-IDF 4.4
b34fe9e
- ci add 5k stack limit
4122dda
- ci force use of ccache in PATH
6de3fa8
- ci add back stack usage check at 4 kilobytes
89135d6
- ci temporarily disable stack usage check
1900c21
- ci(cross) use python3 instead of python
df7eaa0
- ci use specific version tag
59b4769
- ci fix check style action
5bb3686
- ci fix typo in formatting action
d1ccbf6
- ci test formatting action
065d821
- ci(micropython) switch to newer GCC action
1fa7257
- ci(style) force color on diff to help highlight whitespace changes
04f47ea
- ci(cross) install build-essential
772f219
- ci force pushing to upstream branch
8277f78
- ci ensure lvgl-bot is used to make commits
9fcf52a
v8.1.0 10 November 2021
Overview
v8.1 is a minor release, so besides many fixes it contains a lot of new features too.
Some of the most important features are
- Built in support for SDL based GPU drawing
- Much faster circle drawing in the software renderer
- Several 3rd party libraries are merged directly into LVGL.
- Add LVGL as an RT-Thread and ESP32 component
Breaking Changes
- ⚠️ feat(calendar): add the header directly into the calendar widget
2e08f80
Architectural
- arch add small 3rd party libs to lvgl
2569
New Features
-
feat(display) add direct_mode drawing mode
2460
-
feat(conf): make LV_MEM_BUF_MAX_NUM configurable
2747
-
feat(disp): add non-fullscreen display utilities
2724
-
feat(rlottie) add LVGL-Rlottie interface as 3rd party lib
2700
-
feat(rtthread): prepare for porting the device-driver of rt-thread
2719
-
feat(fsdrv) add driver based on Win32 API
2701
-
feat(span) indent supports percent for fix and break mode
2693
-
feat(rt-thread): implement rt-thread sconscirpt
2674
-
feat(lv_spinbox) support both right-to-left and left-to-right digit steps when clicking encoder button
2644
-
feat add support for rt-thread RTOS
2660
-
feat(disp): Enable rendering to display subsection
2583
-
feat(keyboard): add user-defined modes
2651
-
feat(event) add LV_EVENT_CHILD_CREATED/DELETED
2618
-
feat(btnmatrix/keyboard): add option to show popovers on button press
2537
-
feat(msgbox) add a content area for custom content
2561
-
feat(tests): Include debug information to test builds
2568
-
feat(drawing) hardware accelerated rendering by SDL2
2484
-
feat(msgbox): omit title label unless needed
2539
-
feat(msgbox): add function to get selected button index
2538
-
feat(make) add lvgl interface target for micropython
2529
-
feat(obj) add lv_obj_move_to_index(obj, index), renamed lv_obj_get_child_id(obj) to lv_obj_get_index(obj)
2514
-
feat(obj) add lv_obj_swap() function
2461
-
feat(mem) LV_MEM_POOL_ALLOC
2458
-
feat(switch) add smooth animation when changing state
2442
-
feat(anim) add interface for handling lv_anim user data.
2415
-
feat(obj) add lv_is_initialized
2402
-
feat(obj) Backport keypad and encoder scrolling from v7
lv_page
to v8lv_obj
2390
-
feat(snapshot) add API to take snapshot for object
2353
-
feat(anim) add anim timeline
2309
-
feat(span) Add missing spangroup functions
2379
-
feat(img) add img_size property
2284
-
feat(calendar) improve MicroPython example
2366
-
feat(spinbox ) add function to set cursor to specific position
2314
-
feat(timer) check if lv_tick_inc is called
aa6641a
-
feat(event, widgets) improve the parameter of LV_EVENT_DRAW_PART_BEGIN/END
88c4859
-
feat(docs) improvements to examples
4b8c73a
-
feat(obj) send LV_EVENT_DRAW_PART_BEGIN/END for MAIN and SCROLLBAR parts
b203167
-
feat(led) send LV_EVENT_DRAW_PART_BEGIN/END
fcd4aa3
-
feat(chart) send LV_EVENT_DRAW_PART_BEGIN/END before/after the division line drawing section.
e0ae2aa
-
feat(tests) upload coverage to codecov
4fff99d
-
feat(conf) add better check for Kconfig default
f8fe536
-
feat(draw) add LV_BLEND_MODE_MULTIPLY
cc78ef4
-
feat(test) add assert for screenshot compare
2f7a005
-
feat(event) pass the scroll animation to LV_EVENT_SCROLL_BEGIN
ca54ecf
-
feat(obj) place the scrollbar to the left with RTL base dir.
906448e
-
feat(log) allow overwriting LV_LOG_... macros
17b8a76
-
feat(arc) add support to LV_OBJ_FLAG_ADV_HITTEST
dfa4f5c
-
feat(event) add LV_SCREEN_(UN)LOAD_START
7bae9e3
-
feat(obj) add lv_obj_del_delayed()
c6a2e15
-
feat(docs) add view on GitHub link
a716ac6
-
feat(event) add LV_EVENT_SCREEN_LOADED/UNLOADED events
ee5369e
-
feat(textarea) remove the need of lv_textarea_set_align
56ebb1a
-
feat(rt-thread): support LVGL projects with GCC/Keil(AC5)/Keil(AC6)/IAR
32d33fe
-
feat(docs) lazy load individual examples as well
918d948
-
feat: add LV_USE_MEM_PERF/MONITOR_POS
acd0f4f
-
feat(canvas) add lv_canvas_set_px_opa
b3b3ffc
-
feat(event) add lv_obj_remove_event_cb_with_user_data
4eddeb3
-
feat(obj) add lv_obj_get_x/y_aligned
98bc1fe
Performance
-
perf(draw) reimplement circle drawing algorithms
2374
-
perf(anim_timeline) add lv_anim_timeline_stop()
2411
-
perf(obj) remove lv_obj_get_child_cnt from cycle limit checks
ebb9ce9
-
perf(draw) reimplement rectangle drawing algorithms
5b3d3dc
-
perf(draw) ignore masks if they don't affect the current draw area
a842791
-
perf(refresh) optimize where to wait for lv_disp_flush_ready with 2 buffers
d0172f1
-
perf(draw) speed up additive blending
3abe517
Fixes
-
fix(bidi): add weak characters to the previous strong character's run
2777
-
fix(draw_img): radius mask doesn't work in specific condition
2786
-
fix(border_post): ignore bg_img_opa draw when draw border_post
2788
-
fix(refresh) switch to portable format specifiers
2781
-
fix(stm32) Mark unused variable in stm32 DMA2D driver
2782
-
fix(conf): Make LV_COLOR_MIX_ROUND_OFS configurable
2766
-
fix(misc): correct the comment and code style
2769
-
fix(draw_map) use existing variables instead function calls
2776
-
fix(draw_img): fix typos in API comments
2773
-
fix(draw_img):radius Mask doesn't work in Specific condition
2775
-
fix(proto) Remove redundant prototype declarations
2771
-
fix(conf) better support bool option from Kconfign
2555
-
fix(draw_border):draw error if radius == 0 and parent clip_corner == true
2764
-
fix(msgbox) add declaration for lv_msgbox_content_class
2761
-
fix(core) add L suffix to enums to ensure 16-bit compatibility
2760
-
fix(anim): add lv_anim_get_playtime
2745
-
fix(area) minor fixes
2749
-
fix(mem): ALIGN_MASK should equal 0x3 on 32bit platform
2748
-
fix(template) prototype error
2755
-
fix(anim): remove time_orig from lv_anim_t
2744
-
fix(draw_rect):bottom border lost if enable clip_corner
2742
-
fix(anim) and improvement
2738
-
fix(draw border):border draw error if border width > radius
2739
-
fix(fsdrv): remove the seek call in fs_open
2736
-
fix(fsdrv): skip the path format if LV_FS_xxx_PATH not defined
2726
-
fix: mark unused variable with LV_UNUSED(xxx) instead of (void)xxx
2734
-
fix(fsdrv): fix typo error in commit
752fba34f6
2732
-
fix(fsdrv): return error in case of the read/write failure
2729
-
fix(refr) silence compiler warning due to integer type mismatch
2722
-
fix(fs): fix the off-by-one error in the path function
2725
-
fix(timer): remove the code duplication in lv_timer_exec
2708
-
fix(async): remove the wrong comment from lv_async_call
2707
-
fix(kconfig): change CONFIG_LV_THEME_DEFAULT_FONT to CONFIG_LV_FONT_DEFAULT
2703
-
fix add MP support for LVGL 3rd party libraries
2666
-
fix(png) memory leak for sjpg and use lv_mem_... in lv_png
2704
-
fix(gif) unified whence and remove off_t
2690
-
fix(rt-thread): include the rt-thread configuration header file
2692
-
fix(rt-thread): fix the ci error
2691
-
fix(fsdrv) minor fs issue
2682
-
fix(hal) fix typos and wording in docs for lv_hal_indev.h
2685
-
fix(hal tick): add precompile !LV_TICK_CUSTOM for global variables and lv_tick_inc()
2675
-
fix(anim_timeline) avoid calling lv_anim_del(NULL, NULL)
2628
-
fix(kconfig) sync Kconfig with the latest lv_conf_template.h
2662
-
fix(log) reduce the stack usage in log function
2649
-
fix(conf) make a better style alignment in lv_conf_internal.h
2652
-
fix(span) eliminate warning in lv_get_snippet_cnt()
2659
-
fix(config): remove the nonexistent Kconfig
2654
-
fix(Kconfig): add LV_MEM_ADDR config
2653
-
fix(log): replace printf with fwrite to save the stack size
2655
-
fix typos
2634
-
fix LV_FORMAT_ATTRIBUTE fix for gnu > 4.4
2631
-
fix(meter) make lv_meter_indicator_type_t of type uint8_t
2632
-
fix(span):crash if span->txt = ""
2616
-
fix(disp) set default theme also for non-default displays
2596
-
fix(label):LONG_DOT mode crash if text Utf-8 encode > 1
2591
-
fix( example) in lv_example_scroll_3.py float_btn should only be created once
2602
-
fix lv_deinit when LV_USE_GPU_SDL is enabled
2598
-
fix add missing LV_ASSERT_OBJ checks
2575
-
fix(lv_conf_internal_gen.py) formatting fixes on the generated file
2542
-
fix(span) opa bug
2584
-
fix(snapshot) snapshot is affected by parent's style because of wrong coords
2579
-
fix(label):make draw area contain ext_draw_size
2587
-
fix(btnmatrix): make ORed values work correctly with lv_btnmatrix_has_btn_ctrl
2571
-
fix compiling of examples when cmake is used
2572
-
fix(lv_textarea) fix crash while delete non-ascii character in pwd mode
2549
-
fix(lv_log.h): remove the duplicated semicolon from LV_LOG_xxx
2544
-
fix(zoom) multiplication overflow on 16-bit platforms
2536
-
fix(printf) use __has_include for more accurate limits information
2532
-
fix(font) add assert in lv_font.c if the font is NULL
2533
-
fix(lv_types.h): remove c/c++ compiler version check
2525
-
fix(lv_utils.c): remove the unneeded header inclusion
2526
-
fix(Kconfig) fix the comment in LV_THEME_DEFAULT_DARK
2524
-
fix(sprintf) add format string for rp2 port
2512
-
fix(span) fix some bugs (overflow,decor,align)
2518
-
fix(color) Bad cast in lv_color_mix() caused UB with 16bpp or less
2509
-
fix(imgbtn) displayed incorrect when the coordinate is negative
2501
-
fix(event) be sure to move all elements in copy “lv_obj_remove_event_cb”
2492
-
fix(draw) use correct pointer in lv_draw_mask assertion
2483
-
feat(mem) LV_MEM_POOL_ALLOC
2458
-
fix(cmake) require 'main' for Micropython
2444
-
fix(docs) add static keyword to driver declaration
2452
-
fix(build) remove main component dependency
2420
-
fix circle drawing algorithms
2413
-
fix(docs) wrong spelling of words in pictures
2409
-
fix(chart) fixed point-following cursor during vertical scroll in charts
2400
-
fix(chart) fixed cursor positioning with large Y rescaling without LV_USE_LARGE_COORD
2399
-
fix(grid.h) typos
2395
-
fix(anim_timeline) heap use after free
2394
-
fix(snapshot) add missing import on MicroPython example
2389
-
fix(disp) Fix assert failure in lv_disp_remove
2382
-
fix(span) modify the underline position
2376
-
fix(color) remove extraneous _LV_COLOR_MAKE_TYPE_HELPER
2372
-
fix(spinner) should not be clickable
2373
-
fix(workflow) silence SDL warning for MicroPython
2367
-
fix (span) fill LV_EVENT_GET_SELF_SIZE
2360
-
fix(workflow) change MicroPython workflow to use master
2358
-
fix(disp) fix memory leak in lv_disp_remove
2355
-
fix(lv_obj.h)typos
2350
-
fix(obj) delete useless type conversion
2343
-
fix(lv_obj_scroll.h) typos
2345
-
fix(txt) enhance the function of break_chars
2327
-
fix(vglite): update for v8
e3e3eea
-
fix(widgets) use lv_obj_class for all the widgets
3fb8baf
-
fix(refr) reduce the nesting level in lv_refr_area
2df1282
-
fix(pxp): update for v8
8a2a4a1
-
fix(obj) move clean ups from lv_obj_del to lv_obj_destructor
b063937
-
fix (draw) fix arc bg image drawing with full arcs
c3b6c6d
-
fix(pxp): update RTOS macro for SDK 2.10
00c3eb1
-
fix(textarea) style update in oneline mode + improve sroll to cursor
60d9a5e
-
feat(led) send LV_EVENT_DRAW_PART_BEGIN/END
fcd4aa3
-
fix(roller) fix partial redraw of the selected area
6bc40f8
-
fix(flex) fix layout update and invalidation issues
5bd82b0
-
fix(indev) focus on objects on release instead of press
76a8293
-
fix tests
449952e
-
fix(dropdown) forget the selected option on encoder longpress
e66b935
-
fix(obj) improve how the focusing indev is determined
a04f2de
-
fix(workflow) speed up MicroPython workflow
38ad5d5
-
fix(test) do not including anything in test files when not running tests
9043860
-
fix tests
36b9db3
-
fix(scroll) fire LV_EVENT_SCROLL_BEGIN in the same spot for both axes
b158932
-
fix(btnmatrix) fix button invalidation on focus change
77cedfa
-
fix(tlsf) do not use <assert.h>
c9745b9
-
fix(template) include lvgl.h in lv_port_*_template.c files
0ae15bd
-
fix(docs) add margin for example description
b5f632e
-
fix(imgbtn) use the correct src in LV_EVENT_GET_SELF_SIZE
04c515a
-
fix(color) remove extraneous cast for 8-bit color
157534c
-
fix(workflow) use same Unix port variant for MicroPython submodules
ac68b10
-
fix(README) improve grammar
de81889
-
fix(printf) skip defining attribute if pycparser is used
ee9bbea
-
fix(README) spelling correction
41869f2
-
fix(color) overflow with 16-bit color depth
fe6d8d7
-
fix(docs) consider an example to be visible over a wider area
145a0fa
-
fix(codecov) disable uploading coverage for pull requests
27d88de
-
fix(arc) disable LV_OBJ_FLAG_SCROLL_CHAIN by default
f172eb3
-
fix(template) update lv_objx_template to v8
38bb8af
-
fix(align) avoid circular references with LV_SIZE_CONTENT
038b781
-
fix(draw) with additive blending with 32-bit color depth
786db2a
-
fix(arc) fix arc invalidation again
5ced080
-
fix(align) fix lv_obj_align_to
93b38e9
-
fix(scroll) keep the scroll position on object deleted
52edbb4
-
fix(dropdown) handle LV_KEY_ENTER
8a50edd
-
fix various minor warnings
924bc75
-
fix(textarea) various cursor drawing fixes
273a0eb
-
fix(label) consider base dir lv_label_get_letter_pos in special cases
6df5122
-
fix(imgbtn) add lv_imgbtn_set_state
26e15fa
-
fix(printf) add (int) casts to log messages to avoid warnings on %d
d9d3f27
-
fix(test) silence make
7610d38
-
fix(test) silence make
37fd9d8
-
fix(calendar) update the MP example
0bab4a7
-
fix(scroll) fix scroll_area_into_view with objects larger than the parent
5240fdd
-
fix(msgbox) handle NULL btn map parameter
769c4a3
-
fix (scroll) do not send unnecessary scroll end events
3ce5226
-
fix(obj_pos) consider all alignments in content size calculation but only if x and y = 0
5b27ebb
-
fix(img decoder) add error handling if the dsc->data = NULL
d0c1c67
-
fix(txt): skip basic arabic vowel characters when processing conjunction
5b54800
-
fix(typo) rename LV_OBJ_FLAG_SNAPABLE to LV_OBJ_FLAG_SNAPPABLE
e697807
-
fix(lv_printf.h): to eliminate the errors in Keil and IAR
f6d7dc7
-
fix(draw) fix horizontal gradient drawing
4c034e5
-
fix(dropdown) use LV_EVENT_READY/CANCEL on list open/close
4dd1d56
-
fix(table) clip overflowing content
8c15933
-
fix(test) add #if guard to exclude test related files from the build
c12a22e
-
fix(test) add #if guard to exclude test related files from the build
fc364a4
-
fix(freetype) fix underline calculation
76c8ee6
-
fix(style) refresh ext. draw pad for padding and bg img
37a5d0c
-
fix(draw) underflow in subpixel font drawing
6d5ac70
-
fix(scrollbar) hide the scrollbar if the scrollble flag is removed
188a946
-
fix(color): minor fixes(#2767)
a4978d0
-
fix(group) skip object if an of the parents is hidden
5799c10
-
fix(obj) fix size invalidation issue on padding change
33ba722
-
fix(label) do not bidi process text in lv_label_ins_text
e95efc1
-
fix(refr) set disp_drv->draw_buf->flushing_last correctly with sw rotation
c514bdd
-
fix(draw) fix drawing small arcs
8081599
-
fix(chart) invalidation with LV_CHART_UPDATE_MODE_SHIFT
d61617c
-
fix(build) fix micropython build error
54338f6
-
fix(draw) fix border width of simple (radius=0, no masking) borders
20f1867
-
fix(calendar) fix calculation today and highlighted day
8f0b5ab
-
fix(style) initialize colors to black instead of zero
524f8dd
-
fix(sjpg) remove unnecessary typedefs
c2d93f7
-
fix(label) fix clipped italic letters
2efa6dc
-
fix(draw) shadow drawing with large shadow width
f810265
-
fix(dropdown) add missing invalidations
33b5d4a
-
fix(dropdown) adjust the handling of keys sent to the dropdown
e41c507
-
fix(disp) be sure the pending scr load animation is finished in lv_scr_load_anim
eb6ae52
-
fix(color) fox color premult precision with 16-bit color depth
f334226
-
fix(obj_pos) save x,y even if the object is on a layout
a9b660c
-
fix(scrollbar) hide the scrollbar if the scrollable flag is removed
d9c6ad0
-
fix(dropdown) fix list position with RTL base direction
79edb37
-
fix(obj) fix lv_obj_align_to with RTL base direction
531afcc
-
fix(chart) fix sending LV_EVENT_DRAW_PART_BEGIN/END for the cursor
34b8cd9
-
fix(arduino) fix the prototype of my_touchpad_read in the LVGL_Arduino.ino
1a62f7a
-
fix(checkbox) consider the bg border when positioning the indicator
a39dac9
-
fix(dropdown) send LV_EVENT_VALUE_CHANGED to allow styling of the list
dae7039
-
fix(group) fix infinite loop
bdce0bc
-
fix(keyboard) use LVGL heap functions instead of POSIX
b20a706
-
fix(blend) fix green channel with additive blending
78158f0
-
fix(btnmatrix) do not show pressed, focused or focus key states on disabled buttons
3df2a74
-
fix(font) handle the last pixel of the glyphs in font loader correctly
fa98989
-
fix(table) fix an off-by-one issue in self size calculation
ea2545a
-
fix shadowed variable
e209260
-
fix shadowed variable
df60018
-
fix(chart) be sure the chart doesn't remain scrolled out on zoom out
ad5b1bd
-
fix(docs) commit to meta repo as lvgl-bot instead of actual commit author
f0e8549
-
fix(table) invalidate the table on cell value change
cb3692e
-
fix(group) allow refocusing objects
1520208
-
fix(tabview) fix with left and right tabs
17c5744
-
fix(msgbox) create modals on top layer instead of act screen
5cf6303
-
fix(theme) show disabled state on buttons of btnmatrix, msgbox and keyboard
0be582b
-
fix(label) update lv_label_get_letter_pos to work with LV_BASE_DIR_AUTO too
580e05a
-
fix(label) fix in lv_label_get_letter_pos with when pos==line_start
58f3f56
-
fix(gif) replace printf statement with LVGL logging
56f62b8
-
fix(docs) add fsdrv back
64527a5
-
fix(table) remove unnecessary invalidation on pressing
6f90f9c
-
fix(chart) draw line chart indicator (bullet)
fba37a3
-
fix(anim) return the first anim if exec_cb is NULL in lv_anim_get()
fb7ea10
-
fix(label) fix lv_label_get_letter_on with BIDI enabled
192419e
-
fix(checkbox) add missing invalidations
bb39e9d
-
fix(draw) fix gradient calculation of the rectangle is clipped
13e3470
-
fix(example) fix lv_example_chart_2
89081c2
-
fix(calendar) fix the position calculation today
ad05e19
-
fix(tick) minor optimization on lv_tick_inc call test
b4305df
-
fix(docs) use let instead of const for variable which gets changed
3cf5751
-
fix(theme) fix the switch style in the default theme
0c0dc8e
-
fix(tlsf) undef printf before define-ing it
cc935b8
-
fix(msgbox) prevent the buttons being wider than the msgbox
73e036b
-
fix(chart) don't draw series lines with < 1 points
655f42b
-
fix(tests) remove src/test_runners when cleaning
6726b0f
-
fix(label) remove duplicated lv_obj_refresh_self_size
a070ecf
-
fix(colorwheel) disable LV_OBJ_FLAG_SCROLL_CHAIN by default
48d1c29
-
fix(obj) do not set the child's position in lv_obj_set_parent
d89a5fb
-
feat: add LV_USE_MEM_PERF/MONITOR_POS
acd0f4f
-
fix(scroll) in scroll to view functions respect disabled LV_OBJ_FLAG_SCROLLABLE
9318e02
-
fix(flex) remove unused variable
747b6a2
-
feat(canvas) add lv_canvas_set_px_opa
b3b3ffc
-
fix(textarea) allow using cursor with not full bg_opa
c9d3965
-
fix(txt) _lv_txt_get_next_line return 0 on empty texts
82f3fbc
-
fix(btnmatrix) always update row_cnt
86012ae
-
fix(scroll) minor fixes on obj scroll handling
a4128a8
-
fix(table) consider border width for cell positions
f2987b6
-
fix(log) be sure LV_LOG_... is not empty if logs are disabled
47734c4
-
fix(arc) fix LV_ARC_MODE_REVERSE
df3b969
-
fix(obj) in lv_obj_move_to_index() do not send LV_EVENT_CHILD_CHANGED on all changed child
32e8276
-
feat(event) add lv_obj_remove_event_cb_with_user_data
4eddeb3
-
fix(draw) fix shadow drawing with radius=0
4250e3c
-
fix(msgbox) directly store the pointer of all children
eb5eaa3
-
fix(draw) use the filtered colors in lv_obj_init_draw_xxx_dsc() functions
78725f2
-
fix(arc) fix full arc invalidation
98b9ce5
-
chore(led) expose LV_LED_BRIGHT_MIN/MAX in led.h
3f18b23
-
fix(group) keep the focused object in lv_group_swap_obj
a997147
-
fix(obj) swap objects in the group too in lv_obj_swap()
52c7558
-
fix(theme) use opacity on button's shadow in the default theme
c5342e9
-
fix(win) enable clip_corner and border_post by default
493ace3
-
fix(draw) fix rectangle drawing with clip_corner enabled
01237da
-
fix(arc) fix other invalidation issues
b0a7337
-
feat(obj) add lv_obj_get_x/y_aligned
98bc1fe
-
fix(calendar) fix incorrect highlight of today
adbac52
-
fix(arc, meter) fix invalidation in special cases
0f14f49
-
fix(canvas) invalidate the image on delete
a1b362c
-
fix(msgbox) return the correct pointer from lv_msgbox_get_text
50ea6fb
-
fix(bidi) fix the handling of LV_BASE_DIR_AUTO in several widgets
7672847
-
fix(build) remove main component dependency (#2420)
f2c2393
-
fix(meter) fix inner mask usage
c28c146
-
fix(log) fix warning for empty log macros
4dba8df
-
fix(theme) improve button focus of keyboard
2504b7e
-
fix(tabview) send LV_EVENT_VALUE_CHANGED only once
933d282
-
fix(obj style) fix children reposition if the parent's padding changes.
57cf661
-
fix(template) update indev template for v8
d8a3d3d
-
fix(obj) detecting which indev sent LV_EVENT_FOCUS
f03d4b8
-
fix(roller) adjust the size of the selected area correctly
01d1c87
-
fix(imgbtn) consider width==LV_SIZE_CONTENT if only mid. img is set
7e49f48
-
fix(flex) fix NULL pointer dereference
97ba12f
-
fix(obj, switch) do not send LV_EVENT_VALUE_CHANGED twice
713b39e
-
fix(coords) fix using large coordinates
428db94
-
fix(chart) fix crash if no series are added
c728b5c
-
fix(meter) fix needle image invalidation
54d8e81
-
fix(mem) add lv_ prefix to tlsf functions and types
0d52b59
-
fix(pxp) change LV_COLOR_TRANSP to LV_COLOR_CHROMA_KEY to v8 compatibility
81f3068
Examples
-
example(chart) add area chart example
2507
-
example(anim) add demo to use cubic-bezier
2393
-
feat(example) add lv_example_chart_9.py
2604
-
feat(example) add lv_example_chart_8.py
2611
-
feat(example) chart example to add gap between the old and new data
2565
-
feat(example) add lv example list 2
2545
-
feat(examples) add MicroPython version of lv_example_anim_3 and allow loading roller font dynamically
2412
-
feat(examples) added MP version of second tabview example
2347
-
fix(example):format codes
2731
-
fix(example) minor fixes in lv_example_chart_2.py
2601
-
feat(example) add text with gradient example
462fbcb
-
fix(example_roller_3) mask free param bug
2553
-
fix(examples) don't compile assets unless needed
2523
-
fix(example) scroll example sqort types
2498
-
fix(examples) join usage
2425
-
fix(examples) add missing lv.PART.INDICATOR
2423
-
fix(examples) use lv.grid_fr for MicroPython
2419
-
fix(examples) remove symlinks
2406
-
fix(examples) import 'u'-prefixed versions of modules
2365
-
fix(examples) remove cast in MP scripts
2354
-
fix(examples) fix MicroPython examples and run the examples with CI
2339
-
fix(examples) align with renamed Micropython APIs
2338
-
fix(examples) adjust canvas example for MicroPython API change
52d1c2e
-
fix(example) revert test code
77e2c1f
-
feat(example) add checkbox example for radio buttons
d089b36
-
feat(example) add text with gradient example
462fbcb
-
fix(examples) exclude example animimg images if animimg is disabled
4d7d306
-
fix(example) adjust the object sizes in lv_example_anim_timeline_1()
71a10e4
-
fix(example) revert text code from lv_example_checkbox_2
28e9593
Docs
-
docs: fix typo
2765
-
docs(colorwheel) fix old API names
2643
-
docs(display) fix typo
2624
-
docs add static for lv_indev_drv_t
2605
-
docs(animimg) add to extra widgets index and fix example
2610
-
docs(animimg) Add missing animation image page
2609
-
docs(group) remove reference to lv_cont which is gone in v8
2580
-
docs(style) use correct API name for local styles
2550
-
docs(all) Proofread, fix typos and add clarifications in confusing areas
2528
-
docs(flex) update flex.md
2517
-
docs more spelling fixes
2499
-
docs fix typo: arae -> area
2488
-
docs(readme) fix typo: hosing → hosting.
2477
-
docs update company name and year
2476
-
docs fix typos
2472
-
docs(overview) fix typo
2465
-
docs(bar) fix typos in widget examples
2463
-
docs(overview) fix typo
2454
-
docs(chart) typos
2427
-
docs(layout) add internal padding paragraph to grid and flex layout p…
2392
-
docs(porting) fix indev example to remove v7 bool return
2381
-
docs(README) fix broken references
2329
-
docs(grid) typo fix
2310
-
docs(color) language fixes
2302
-
docs(lv_obj_style) update add_style and remove_style function headers
2287
-
docs(contributing) add commit message format section
3668e54
-
docs minor typo fixes
84c0086
-
docs(arduino) update some outdated information
9a77102
-
docs(keyboard) add note regarding event handler
255f729
-
docs minor CSS fix
acbb680
-
docs minor CSS improvements
7f367d6
-
docs(keyboard) change
LV_KEYBOARD_MODE_NUM
toLV_KEYBOARD_MODE_NUMBER
6e83d37
-
docs(textarea) clarify the use of text selection bg_color
65673c0
-
docs list all examples on one page
25acaf4
-
docs(examples) add MicroPython examples
6f37c4f
-
docs(filesystem) update to v8
7971ade
-
docs(style) complete the description of style the properties
55e8846
-
docs example list fixes
cd600d1
-
docs(style) complete the description of style the properties
ff087da
-
docs(README) update links, examples, and add services menu
3471bd1
-
docs(color) update colors' docs
9056b5e
-
docs update lv_fs.h, layer and align.png to v8
31ab062
-
docs(color) minor fix
ac8f453
-
docs update changelog
c386110
-
docs(extra) add extra/README.md
8cd504d
-
docs add lazy load to the iframes of the examples
c49e830
-
docs(os) add example and clarify some points
d996453
-
docs(rlottie) fix build error
ce0b564
-
docs include paths in libs
f5f9562
-
docs libs fixes
8e7bba6
-
docs(obj) add comment lv_obj_get_x/y/width/height about postponed layout recalculation
533066e
-
docs fix example list
ed77ed1
-
docs describe the options to include or skip lv_conf.h
174ef66
-
docs(overview) spelling fixes
d2efb8c
-
docs(table) describe keypad/encoder navigation
749d1b3
-
docs update CHANGELOG
0f8bc18
-
docs(image) mention the frame_id parameter of lv_img_decoder_open
2433732
-
docs(arduino) update how to use the examples
06962a5
-
docs(rlottie): fix typo in commands
ed9169c
-
docs(indev, layer) update lv_obj_set_click() to lv_obj_add_flag()
bcd99e8
-
docs update version support table
e6e98ab
-
docs fix example list
c6f99ad
-
docs(examples) add <hr/> to better separate examples
a1b59e3
-
docs(checkbox) update the comment lv_checkbox_set_text_static
3e0ddd0
-
docs(grid) fix missing article
da0c97a
-
docs(display) fix grammar in one spot
5dbea7d
-
docs(style) fix typo in style property descriptions
4e3b860
-
docs(flex) fix typo in flex grow section
e5fafc4
-
docs(indev) clarify purpose of
continue_reading
flag706f81e
-
docs(license) update company name and year
7c1eb00
-
docs fix typo
8ab8064
-
docs add libs to the main index
1a8fed5
-
docs add btn_example.png
8731ef1
-
docs(btnmatrix) fix typo with set_all/clear_all parameters
51a82a1
CI and tests
-
ci(micropython) fix git fetch
2757
-
test(txt) initial unit tests and general code cleanup/fixes
2623
-
test add setUp and tearDown to test template
2648
-
test(arc) add initial unit tests
2617
-
ci(micropython) add ESP32 and STM32 tests
2629
-
test(checkbox) add initial tests
2551
-
test(ci) build and run tests in parallel.
2515
-
ci(tests) run tests using ctest
2503
-
ci(tests) add dependency on GNU parallel
2510
-
ci(tests) use common script to install development prereqs
2504
-
test convert Makefile to CMake
2495
-
test Refactor unit test scripts.
2473
-
test(font_loader) migrate the existing font loader test
bc5b3be
-
test add build test again, add dropdown test, integrate gcov and gvocr
e35b1d0
-
test(dropdown) add tess for keypad and encoder
4143b80
-
test add keypad and encoder emulators
e536bb6
-
tests add mouse emulator
2ba810b
-
tests add README
b765643
-
test add move tests to test_cases and test_runners directories
e9e010a
-
test fix CI build error
c38cae2
-
ci add config for 8bpp
3eacc59
-
test move more source files to src folder
3672f87
-
test update CI for the new tests
a3898b9
-
test cleaned up report folder
b9b4ba5
-
test fix build error
61cda59
-
test(font_loader) migrate the existing font loader test
d6dbbaa
-
test add move tests to test_cases and test_runners directories
d2e735e
-
test add 3rd party libs to all tests and also fix them
7a95fa9
-
test(arc): add test case for adv_hittest
e83df6f
-
ci create check for lv_conf_internal.h
5d8285e
-
test fix warning and docs build error
d908f31
-
ci(micropython) add rp2 port
1ab5c96
-
test(dropdown) remove dummy test case
9fb98da
-
ci(codecov) hide statuses on commits for now
0b7be77
-
ci(docs) run apt-get update before installation
f215174
-
test fix LV_USE_LOG_LEVEL -> LV_LOG_LEVEL typo
80f0b09
-
ci(micropython) add GCC problem matcher
ab316a0
-
test convert Makefile to CMake (#2495)
9c846ee
Others
-
chore: replace (void)xxx with LV_UNUSED(xxx)
2779
-
animation improvement
2743
-
Improve LV_FORMAT_ATTRIBUTE usage
2673
-
Fix typo in commands to build rlottie
2723
-
del(.gitmodules): delete .gitmodules
2718
-
lv_obj_draw_part_dsc_t.text_length added
2694
-
expose LV_COLOR_DEPTH and LV_COLOR_16_SWAP in micropython
2679
-
sync lvgl/lv_fs_if
2676
-
build: always enable CMake install rule in default configuration
2636
-
build: fix lib name in CMakeLists
2641
-
build: remove use of 'project' keyword in CMakeLists
2640
-
build add install rule to CMakeList.txt
2621
-
Fixed row size calculation
2633
-
arch add small 3rd party libs to lvgl
2569
-
Kconfig: Add missing options
2597
-
Espressif IDF component manager
2521
-
chore(btnmatrix) removed unnecessary semicolon
2520
-
Update README.md
2516
-
Corrected a function name in obj.md
2511
-
Simple spelling fixes
2496
-
added lv_obj_move_up() and lv_obj_move_down()
2467
-
Fix buf name error for "lv_port_disp_template.c" and optimize the arduino example
2475
-
Fix two examples in the docs with new v8 api
2486
-
kconfig: minor fix for default dark theme option
2426
-
doc(table) update doc on cell merging
2397
-
added example lv_example_anim_timeline_1.py
2387
-
refactor(printf) add printf-like function attribute to _lv_txt_set_text_vfmt and lv_label_set_text_fmt
2332
-
Update win.md
2352
-
Nxp pxp vglite v8 dev
2313
-
More Snapable --> Snappable replacements
2304
-
Spelling and other language fixes to documentation
2293
-
Update quick-overview.md
2295
-
adding micropython examples
2286
-
format run code-formtter.sh
d67dd94
-
Update ROADMAP.md
2b1ae3c
-
Create .codecov.yml
e53aa82
-
refactor(examples) drop JS-specific code from header.py
ef41450
-
make test run on master and release/v8.*
227402a
-
Update release.yml
0838f12
-
refactor(examples) drop usys import from header.py
ad1f91a
-
Update ROADMAP.md
a38fcf2
-
Revert "feat(conf) add better check for Kconfig default"
a5793c7
-
remove temporary test file
a958c29
-
start to implement release/patch
1626a0c
-
chore(indev) minor formatting
79ab3d2
-
add basic patch release script
1c3ecf1
-
chore(example) minor improvements on lv_example_list_2
bb6d6b7
-
tool: add changelog_gen.sh to automatically generate changelog
6d95521
-
update version numbers to v8.1.0-dev
8691611
-
chore(test) improve prints
ea8bed3
-
chore(test) improve prints
0c4bca0
-
chore: update lv_conf_internal.h
41c2dd1
-
chore(format) lv_conf_template.h minor formatting
3c86d77
-
chore(docs) always deploy master to docs/master as well
6d05692
-
Update CHANGELOG.md
48fd73d
-
Fix compile errors
6c956cc
-
Update textarea.md
6d8799f
-
chore(assert) add warning about higher memory usage if LV_USE_ASSERT_STYLE is enabled
33e4330
-
Update page.html
9573bab
-
chore(docs) force docs rebuild
4a0f413
-
Fix typo error in color.md
572880c
-
Update arc.md
2a9b9e6
-
Update index.rst
9ce2c77
-
chore(docs) minor formatting on example's GitHub link
75209e8
-
chore(lv_conf_template) fix spelling mistake
9d134a9
-
Update CHANGELOG.md
8472360
-
chore(stale) disable on forks
93c1303
-
Revert "fix(tests) remove src/test_runners when cleaning"
ae15a1b
-
style fix usage of clang-format directives
2122583
-
Revert "fix(indev) focus on objects on release instead of press"
f61b2ca
v8.0.2 (16.07.2021)
- fix(theme) improve button focus of keyboard
- fix(tabview) send LV_EVENT_VALUE_CHANGED only once
- fix(imgbtn) use the correct src in LV_EVENT_GET_SELF_SIZE
- fix(color) remove extraneous cast for 8-bit color
- fix(obj style) fix children reposition if the parent's padding changes.
- fix(color) remove extraneous _LV_COLOR_MAKE_TYPE_HELPER (#2372)
- fix(spinner) should not be clickable (#2373)
- fix(obj) improve how the focusing indev is determined
- fix(template) update indev template for v8
- fix(printf) skip defining attribute if pycparser is used
- refactor(printf) add printf-like function attribute to _lv_txt_set_text_vfmt and lv_label_set_text_fmt (#2332)
- fix(template) include lvgl.h in lv_port_*_template.c files
- fix(obj) detecting which indev sent LV_EVENT_FOCUS
- fix (span) fill LV_EVENT_GET_SELF_SIZE (#2360)
- fix(arc) disable LV_OBJ_FLAG_SCROLL_CHAIN by default
- fix (draw) fix arc bg image drawing with full arcs
- fix(disp) fix memory leak in lv_disp_remove (#2355)
- fix warnings introduced by
3fb8baf5
- fix(widgets) use lv_obj_class for all the widgets
- fix(obj) move clean ups from lv_obj_del to lv_obj_destructor
- fix(roller) fix partial redraw of the selected area
- fix(roller) adjust the size of the selected area correctly
- fix(obj) delete useless type conversion (#2343)
- fix(lv_obj_scroll.h) typos (#2345)
- fix(scroll) fire LV_EVENT_SCROLL_BEGIN in the same spot for both axes
- fix(btnmatrix) fix button invalidation on focus change
- fix(textarea) style update in oneline mode + improve scroll to cursor
- fix(tlsf) do not use <assert.h>
- fix(imgbtn) consider width==LV_SIZE_CONTENT if only mid. img is set
- fix(refr) reduce the nesting level in lv_refr_area
- fix(txt) enhance the function of break_chars (#2327)
- fix(pxp): update RTOS macro for SDK 2.10
- fix(vglite): update for v8
- fix(pxp): update for v8
- fix(flex) fix layout update and invalidation issues
- fix(flex) fix NULL pointer dereference
- fix(obj, switch) do not send LV_EVENT_VALUE_CHANGED twice
- fix(color) overflow with 16-bit color depth
- fix(coords) fix using large coordinates
- fix(chart) fix crash if no series are added
- fix(chart) invalidation with LV_CHART_UPDATE_MODE_SHIFT
- fix(align) fix lv_obj_align_to G
- fix(table) invalidate the table on cell value change
- fix(label) remove duplicated lv_obj_refresh_self_size
- fix(draw) underflow in subpixel font drawing
- fix (scroll) do not send unnecessary scroll end events
v8.0.1 (14.06.2021)
- docs(filesystem) update to v8 7971ade4
- fix(msgbox) create modals on top layer instead of act screen 5cf6303e
- fix(colorwheel) disable LV_OBJ_FLAG_SCROLL_CHAIN by default 48d1c292
- docs(grid) typo fix (#2310) 69d109d2
- fix(arduino) fix the prototype of my_touchpad_read in the LVGL_Arduino.ino 1a62f7a6
- fix(meter) fix needle image invalidation 54d8e817
- fix(mem) add lv_ prefix to tlsf functions and types 0d52b59c
- fix(calendar) fix the position calculation today ad05e196
- fix(typo) rename LV_OBJ_FLAG_SNAPABLE to LV_OBJ_FLAG_SNAPPABLE e697807c
- docs(color) language fixes (#2302) 07ecc9f1
- fix(tick) minor optimization on lv_tick_inc call test b4305df5
- Spelling and other language fixes to documentation (#2293) d0aaacaf
- fix(theme) show disabled state on buttons of btnmatrix, msgbox and keyboard 0be582b3
- fix(scroll) keep the scroll position on object deleted 52edbb46
- fix(msgbox) handle NULL btn map parameter 769c4a30
- fix(group) allow refocusing objects 1520208b
- docs(overview) spelling fixes d2efb8c6
- Merge branch 'master' of https://github.com/lvgl/lvgl 45960838
- feat(timer) check if lv_tick_inc is called aa6641a6
- feat(docs) add view on GitHub link a716ac6e
- fix(theme) fix the switch style in the default theme 0c0dc8ea
- docs fix typo 8ab80645
- Merge branch 'master' of https://github.com/lvgl/lvgl e796448f
- feat(event) pass the scroll animation to LV_EVENT_SCROLL_BEGIN ca54ecfe
- fix(tabview) fix with left and right tabs 17c57449
- chore(docs) force docs rebuild 4a0f4139
- chore(docs) always deploy master to docs/master as well 6d05692d
- fix(template) update lv_objx_template to v8 38bb8afc
- docs(extra) add extra/README.md 8cd504d5
- Update CHANGELOG.md 48fd73d2
- Update quick-overview.md (#2295) 5616471c
- fix(pxp) change LV_COLOR_TRANSP to LV_COLOR_CHROMA_KEY to v8 compatibility 81f3068d
- adding micropython examples (#2286) c60ed68e
- docs(color) minor fix ac8f4534
- fix(example) revert test code 77e2c1ff
- fix(draw) with additive blending with 32-bit color depth 786db2af
- docs(color) update colors' docs 9056b5ee
- Merge branch 'master' of https://github.com/lvgl/lvgl a711a1dd
- perf(refresh) optimize where to wait for lv_disp_flush_ready with 2 buffers d0172f14
- docs(lv_obj_style) update add_style and remove_style function headers (#2287) 60f7bcbf
- fix memory leak of spangroup (#2285) 33e0926a
- fix make lv_img_cache.h public because cache invalidation is public 38ebcd81
- Merge branch 'master' of https://github.com/lvgl/lvgl 2b292495
- fix(btnmatrix) fix focus event handling 3b58ef14
- Merge pull request #2280 from lvgl/dependabot/pip/docs/urllib3-1.26.5 a2f45b26
- fix(label) calculating the clip area 57e211cc
- chore(deps): bump urllib3 from 1.26.4 to 1.26.5 in /docs b2f77dfc
- fix(docs) add docs about the default group 29bfe604
v8.0.0 (01.06.2021)
v8.0 brings many new features like simplified and more powerful scrolling, new layouts inspired by CSS Flexbox and Grid, simplified and improved widgets, more powerful events, hookable drawing, and more.
v8 is a major change and therefore it's not backward compatible with v7.
Directory structure
- The
lv_
prefix is removed from the folder names - The
docs
is moved to thelvgl
repository - The
examples
are moved to thelvgl
repository - Create an
src/extra
folder for complex widgets:- It makes the core LVGL leaner
- In
extra
we can have a lot and specific widgets - Good place for contributions
Widget changes
lv_cont
removed, layout features are moved tolv_obj
lv_page
removed, scroll features are moved tolv_obj
lv_objmask
the same can be achieved by eventslv_meter
added as the union oflv_linemeter
andlv_gauge
lv_span
new widget mimicking HTML<span>
lv_animing
new widget for simple slideshow animations- + many minor changes and improvements
New scrolling
- Support "elastic" scrolling when scrolled in
- Support scroll chaining among any objects types (not only
lv_pages
s) - Remove
lv_drag
. Similar effect can be achieved by setting the position inLV_EVENT_PRESSING
- Add snapping
- Add snap stop to scroll max 1 snap point
New layouts
- CSS Grid-like layout support
- CSS Flexbox-like layout support
Styles
- Optimize and simplify styles
- State is saved in the object instead of the style property
- Object size and position can be set in styles too
Events
- Allow adding multiple events to an object
- A
user_data
can be attached to the added events
Driver changes
lv_disp_drv_t
,lv_indev_drv_t
,lv_fs_drv_t
needs to bestatic
...disp_buf...
is renamed todraw_buf
. See an initialization example here.- No partial update if two screen sized buffers are set
disp_drv->full_refresh = 1
makes always the whole display redraw.hor_res
andver_res
need to be set indisp_drv
indev_read_cb
returnsvoid
. To indicate that there is more that to read setdata->continue_reading = 1
in theread_cb
Other changes
- Remove the copy parameter from create functions
- Simplified File system interface API
- Use a more generic inheritance
- The built-in themes are reworked
lv_obj_align
now saved the alignment and realigns the object automatically but can't be used to align to other than the parentlv_obj_align_to
can align to an object but doesn't save the alignmentlv_pct(x)
can be used to set the size and position in percentage- There are many other changes in widgets that are not detailed here. Please refer to the documentation of the widgets.
New release policy
- We will follow Release branches with GitLab flow
- Minor releases are expected in every 3-4 month
master
will always contain the latest changes
Migrating from v7 to v8
- First and foremost, create a new
lv_conf.h
based onlv_conf_template.h
. - To try the new version it's recommended to use a simulator project and see the examples.
- When migrating your project to v8
- Update the drivers are described above
- Update the styles
- Update the events
- Use the new layouts instead of
lv_cont
features - Use
lv_obj
instead oflv_page
- See the changes in Colors
- The other parts are mainly minor renames and refactoring. See the functions' documentation for descriptions.
v7.11.0 (16.03.2021)
New features
- Add better screen orientation management with software rotation support
- Decide text animation's direction based on base_dir (when using LV_USE_BIDI)
Bugfixes
- fix(gauge) fix needle invalidation
- fix(bar) correct symmetric handling for vertical sliders
v7.10.1 (16.02.2021)
Bugfixes
- fix(draw) overlap outline with background to prevent aliasing artifacts
- fix(indev) clear the indev's
act_obj
inlv_indev_reset
- fix(text) fix out of bounds read in
_lv_txt_get_width
- fix(list) scroll list when button is focused using LV_KEY_NEXT/PREV
- fix(text) improve Arabic contextual analysis by adding hyphen processing and proper handling of lam-alef sequence
- fix(delete) delete animation after the children are deleted
- fix(gauge) consider paddings for needle images
v7.10.0 (02.02.2021)
New features
- feat(indev) allow input events to be passed to disabled objects
- feat(spinbox) add inline get_step function for MicroPython support
Bugfixes
- fix(btnmatrix) fix lv_btnmatrix_get_active_btn_text() when used in a group
v7.9.1 (19.01.2021)
Bugfixes
- fix(cpicker) fix division by zero
- fix(dropdown) fix selecting options after the last one
- fix(msgbox) use the animation time provided
- fix(gpu_nxp_pxp) fix incorrect define name
- fix(indev) don't leave edit mode if there is only one object in the group
- fix(draw_rect) fix draw pattern stack-use-after-scope error
v7.9.0 (05.01.2021)
New features
- feat(chart) add lv_chart_remove_series and lv_chart_hide_series
- feat(img_cache) allow disabling image caching
- calendar: make get_day_of_week() public
- Added support for Zephyr integration
Bugfixes
- fix(draw_rect) free buffer used for arabic processing
- fix(win) arabic process the title of the window
- fix(dropdown) arabic process the option in lv_dropdown_add_option
- fix(textarea) buffer overflow in password mode with UTF-8 characters
- fix(textarea) cursor position after hiding character in password mode
- fix(linemeter) draw critical lines with correct color
- fix(lv_conf_internal) be sure Kconfig defines are always uppercase
- fix(kconfig) handle disable sprintf float correctly.
- fix(layout) stop layout after recursion threshold is reached
- fix(gauge) fix redraw with image needle
v7.8.1 (15.12.2020)
Bugfixes
- fix(lv_scr_load_anim) fix when multiple screens are loaded at the same time with delay
- fix(page) fix LV_SCROLLBAR_MODE_DRAG
v7.8.0 (01.12.2020)
New features
- make DMA2D non blocking
- add unscii-16 built-in font
- add KConfig
- add lv_refr_get_fps_avg()
Bugfixes
- fix(btnmatrix) handle arabic texts in button matrices
- fix(indev) disabled object shouldn't absorb clicks but let the parent to be clicked
- fix(arabic) support processing again already processed texts with _lv_txt_ap_proc
- fix(textarea) support Arabic letter connections
- fix(dropdown) support Arabic letter connections
- fix(value_str) support Arabic letter connections in value string property
- fix(indev) in LV_INDEV_TYPE_BUTTON recognize 1 cycle long presses too
- fix(arc) make arc work with encoder
- fix(slider) adjusting the left knob too with encoder
- fix reference to LV_DRAW_BUF_MAX_NUM in lv_mem.c
- fix(polygon draw) join adjacent points if they are on the same coordinate
- fix(linemeter) fix invalidation when setting new value
- fix(table) add missing invalidation when changing cell type
- refactor(roller) rename LV_ROLLER_MODE_INIFINITE -> LV_ROLLER_MODE_INFINITE
v7.7.2 (17.11.2020)
Bugfixes
- fix(draw_triangle): fix polygon/triangle drawing when the order of points is counter-clockwise
- fix(btnmatrix): fix setting the same map with modified pointers
- fix(arc) fix and improve arc dragging
- label: Repair calculate back
dot
character logical error which cause infinite loop. - fix(theme_material): remove the bottom border from tabview header
- fix(imgbtn) guess the closest available state with valid src
- fix(spinbox) update cursor position in lv_spinbox_set_step
v7.7.1 (03.11.2020)
Bugfixes
- Respect btnmatrix's
one_check
inlv_btnmatrix_set_btn_ctrl
- Gauge: make the needle images to use the styles from
LV_GAUGE_PART_PART
- Group: fix in
lv_group_remove_obj
to handle deleting hidden objects correctly
v7.7.0 (20.10.2020)
New features
- Add PXP GPU support (for NXP MCUs)
- Add VG-Lite GPU support (for NXP MCUs)
- Allow max. 16 cell types for table
- Add
lv_table_set_text_fmt()
- Use margin on calendar header to set distances and padding to the size of the header
- Add
text_sel_bg
style property
Bugfixes
- Theme update to support text selection background
- Fix imgbtn state change
- Support RTL in table (draw columns right to left)
- Support RTL in pretty layout (draw columns right to left)
- Skip objects in groups if they are in disabled state
- Fix dropdown selection with RTL basedirection
- Fix rectangle border drawing with large width
- Fix
lv_win_clean()
v7.6.1 (06.10.2020)
Bugfixes
- Fix BIDI support in dropdown list
- Fix copying base dir in
lv_obj_create
- Handle sub pixel rendering in font loader
- Fix transitions with style caching
- Fix click focus
- Fix imgbtn image switching with empty style
- Material theme: do not set the text font to allow easy global font change
v7.6.0 (22.09.2020)
New features
- Check whether any style property has changed on a state change to decide if any redraw is required
Bugfixes
- Fix selection of options with non-ASCII letters in dropdown list
- Fix font loader to support LV_FONT_FMT_TXT_LARGE
v7.5.0 (15.09.2020)
New features
- Add
clean_dcache_cb
andlv_disp_clean_dcache
to enable users to use their own cache management function - Add
gpu_wait_cb
to wait until the GPU is working. It allows to run CPU a wait only when the rendered data is needed. - Add 10px and 8ox built in fonts
Bugfixes
- Fix unexpected DEFOCUS on lv_page when clicking to bg after the scrollable
- Fix
lv_obj_del
andlv_obj_clean
if the children list changed during deletion. - Adjust button matrix button width to include padding when spanning multiple units.
- Add rounding to btnmatrix line height calculation
- Add
decmopr_buf
to GC roots - Fix division 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
v7.4.0 (01.09.2020)
The main new features of v7.4 are run-time font loading, style caching and arc knob with value setting by click.
New features
- Add
lv_font_load()
function - Loads alv_font_t
object from a binary font file - Add
lv_font_free()
function - Frees the memory allocated by thelv_font_load()
function - Add style caching to reduce access time of properties with default value
- arc: add set value by click feature
- arc: add
LV_ARC_PART_KNOB
similarly to slider - send gestures event if the object was dragged. User can check dragging with
lv_indev_is_dragging(lv_indev_act())
in the event function.
Bugfixes
- Fix color bleeding on border drawing
- Fix using 'LV_SCROLLBAR_UNHIDE' after 'LV_SCROLLBAR_ON'
- Fix cropping of last column/row if an image is zoomed
- Fix zooming and rotating mosaic images
- Fix deleting tabview with LEFT/RIGHT tab position
- Fix btnmatrix to not send event when CLICK_TRIG = true and the cursor slid from a pressed button
- Fix roller width if selected text is larger than the normal
v7.3.1 (18.08.2020)
Bugfixes
- Fix drawing value string twice
- Rename
lv_chart_clear_serie
tolv_chart_clear_series
andlv_obj_align_origo
tolv_obj_align_mid
- Add linemeter's mirror feature again
- Fix text decor (underline strikethrough) with older versions of font converter
- Fix setting local style property multiple times
- Add missing background drawing and radius handling to image button
- Allow adding extra label to list buttons
- Fix crash if
lv_table_set_col_cnt
is called beforelv_table_set_row_cnt
for the first time - Fix overflow in large image transformations
- Limit extra button click area of button matrix's buttons. With large paddings it was counter-intuitive. (Gaps are mapped to button when clicked).
- Fix
lv_btnmatrix_set_one_check
not forcing exactly one button to be checked - Fix color picker invalidation in rectangle mode
- Init disabled days to gray color in calendar
v7.3.0 (04.08.2020)
New features
- Add
lv_task_get_next
- Add
lv_event_send_refresh
,lv_event_send_refresh_recursive
to easily sendLV_EVENT_REFRESH
to object - Add
lv_tabview_set_tab_name()
function - used to change a tab's name - Add
LV_THEME_MATERIAL_FLAG_NO_TRANSITION
andLV_THEME_MATERIAL_FLAG_NO_FOCUS
flags - Reduce code size by adding:
LV_USE_FONT_COMPRESSED
andLV_FONT_USE_SUBPX
and applying some optimization - Add
LV_MEMCPY_MEMSET_STD
to use standardmemcpy
andmemset
Bugfixes
- Do not print warning for missing glyph if its height OR width is zero.
- Prevent duplicated sending of
LV_EVENT_INSERT
from text area - Tidy outer edges of cpicker widget.
- Remove duplicated lines from
lv_tabview_add_tab
- btnmatrix: handle combined states of buttons (e.g. checked + disabled)
- textarea: fix typo in lv_textarea_set_scrollbar_mode
- gauge: fix image needle drawing
- fix using freed memory in _lv_style_list_remove_style
v7.2.0 (21.07.2020)
New features
- Add screen transitions with
lv_scr_load_anim()
- Add display background color, wallpaper and opacity. Shown when the screen is transparent. Can be used with
lv_disp_set_bg_opa/color/image()
. - Add
LV_CALENDAR_WEEK_STARTS_MONDAY
- Add
lv_chart_set_x_start_point()
function - Set the index of the x-axis start point in the data array - Add
lv_chart_set_ext_array()
function - Set an external array of data points to use for the chart - Add
lv_chart_set_point_id()
function - Set an individual point value in the chart series directly based on index - Add
lv_chart_get_x_start_point()
function - Get the current index of the x-axis start point in the data array - Add
lv_chart_get_point_id()
function - Get an individual point value in the chart series directly based on index - Add
ext_buf_assigned
bit field tolv_chart_series_t
structure - it's true if external buffer is assigned to series - Add
lv_chart_set_series_axis()
to assign series to primary or secondary axis - Add
lv_chart_set_y_range()
to allow setting range of secondary y-axis (based onlv_chart_set_range
but extended with an axis parameter) - Allow setting different font for the selected text in
lv_roller
- Add
theme->apply_cb
to replacetheme->apply_xcb
to make it compatible with the MicroPython binding - Add
lv_theme_set_base()
to allow easy extension of built-in (or any) themes - Add
lv_obj_align_x()
andlv_obj_align_y()
functions - Add
lv_obj_align_origo_x()
andlv_obj_align_origo_y()
functions
Bugfixes
tileview
fix navigation when not screen sized- Use 14px font by default to for better compatibility with smaller displays
linemeter
fix conversation of current value to "level"- Fix drawing on right border
- Set the cursor image non-clickable by default
- Improve mono theme when used with keyboard or encoder
v7.1.0 (07.07.2020)
New features
- Add
focus_parent
attribute tolv_obj
- Allow using buttons in encoder input device
- Add lv_btnmatrix_set/get_align capability
- DMA2D: Remove dependency on ST CubeMX HAL
- Added
max_used
propriety tolv_mem_monitor_t
struct - In
lv_init
test if the strings are UTF-8 encoded. - Add
user_data
to themes - Add LV_BIG_ENDIAN_SYSTEM flag to lv_conf.h in order to fix displaying images on big endian systems.
- Add inline function lv_checkbox_get_state(const lv_obj_t * cb) to extend the checkbox functionality.
- Add inline function lv_checkbox_set_state(const lv_obj_t * cb, lv_btn_state_t state ) to extend the checkbox functionality.
Bugfixes
lv_img
fix invalidation area when angle or zoom changes- Update the style handling to support Big endian MCUs
- Change some methods to support big endian hardware.
- remove use of c++ keyword 'new' in parameter of function lv_theme_set_base().
- Add LV_BIG_ENDIAN_SYSTEM flag to lv_conf.h in order to fix displaying images on big endian systems.
- Fix inserting chars in text area in big endian hardware.
v7.0.2 (16.06.2020)
Bugfixes
lv_textarea
fix wrong cursor position when clicked after the last character- Change all text related indices from 16-bit to 32-bit integers throughout whole library. #1545
- Fix gestures
- Do not call
set_px_cb
for transparent pixel - Fix list button focus in material theme
- Fix crash when a text area is cleared with the backspace of a keyboard
- Add version number to
lv_conf_template.h
- Add log in true double buffering mode with
set_px_cb
lv_dropdown
: fix missingLV_EVENT_VALUE_CHANGED
event when used with encoderlv_tileview
: fix if not the {0;0} tile is created firstlv_debug
: restructure to allow asserting in fromlv_misc
too- add assert if
_lv_mem_buf_get()
fails lv_textarea
: fix character delete in password mode- Update
LV_OPA_MIN
andLV_OPA_MAX
to widen the opacity processed range lv_btnm
fix sending events for hidden buttonslv_gaguge
makelv_gauge_set_angle_offset
offset the labels and needles too- Fix typo in the API
scrllable
->scrollable
tabview
by default allow auto expanding the page only to right and bottom (#1573)- fix crash when drawing gradient to the same color
- chart: fix memory leak
img
: improve hit test for transformed images
v7.0.1 (01.06.2020)
Bugfixes
- Make Micropython working by adding the required variables as GC_ROOT
- Prefix some internal API functions with
_
to reduce the API of LVGL - Fix built-in SimSun CJK font
- Fix UTF-8 encoding when
LV_USE_ARABIC_PERSIAN_CHARS
is enabled - Fix DMA2D usage when 32 bit images directly blended
- Fix lv_roller in infinite mode when used with encoder
- Add
lv_theme_get_color_secondary()
- Add
LV_COLOR_MIX_ROUND_OFS
to adjust color mixing to make it compatible with the GPU - Improve DMA2D blending
- Remove memcpy from
lv_ll
(caused issues with some optimization settings) lv_chart
fix X tick drawing- Fix vertical dashed line drawing
- Some additional minor fixes and formattings
v7.0.0 (18.05.2020)
Documentation
The docs for v7 is available at https://docs.littlevgl.com/v7/en/html/index.html
Legal changes
The name of the project is changed to LVGL and the new website is on https://lvgl.io
LVGL remains free under the same conditions (MIT license) and a company is created to manage LVGL and offer services.
New drawing system
Complete rework of LVGL's draw engine to use "masks" for more advanced and higher quality graphical effects. A possible use-case of this system is to remove the overflowing content from the rounded edges. It also allows drawing perfectly anti-aliased circles, lines, and arcs. Internally, the drawings happen by defining masks (such as rounded rectangle, line, angle). When something is drawn the currently active masks can make some pixels transparent. For example, rectangle borders are drawn by using 2 rectangle masks: one mask removes the inner part and another the outer part.
The API in this regard remained the same but some new functions were added:
lv_img_set_zoom
: set image object's zoom factorlv_img_set_angle
: set image object's angle without using canvaslv_img_set_pivot
: set the pivot point of rotation
The new drawing engine brought new drawing features too. They are highlighted in the "style" section.
New style system
The old style system is replaced with a new more flexible and lightweighted one. It uses an approach similar to CSS: support cascading styles, inheriting properties and local style properties per object. As part of these updates, a lot of objects were reworked and the APIs have been changed.
- more shadows options: offset and spread
- gradient stop position to shift the gradient area and horizontal gradient
LV_BLEND_MODE_NORMAL/ADDITIVE/SUBTRACTIVE
blending modes- clip corner: crop the content on the rounded corners
- text underline and strikethrough
- dashed vertical and horizontal lines (dash gap, dash_width)
- outline: a border-like part drawn out of the background. Can have spacing to the background.
- pattern: display and image in the middle of the background or repeat it
- value display a text which is stored in the style. It can be used e.g. as a light-weighted text on buttons too.
- margin: similar to padding but used to keep space outside the object
Read the Style section of the documentation to learn how the new styles system works.
GPU integration
To better utilize GPUs, from this version GPU usage can be integrated into LVGL. In lv_conf.h
any supported GPUs can be enabled with a single configuration option.
Right now, only ST's DMA2D (Chrom-ART) is integrated. More will in the upcoming releases.
Renames
The following object types are renamed:
- sw -> switch
- ta -> textarea
- cb -> checkbox
- lmeter -> linemeter
- mbox -> msgbox
- ddlist -> dropdown
- btnm -> btnmatrix
- kb -> keyboard
- preload -> spinner
- lv_objx folder -> lv_widgets
- LV_FIT_FILL -> LV_FIT_PARENT
- LV_FIT_FLOOD -> LV_FLOOD_MAX
- LV_LAYOUT_COL_L/M/R -> LV_LAYOUT_COLUMN_LEFT/MID/RIGHT
- LV_LAYOUT_ROW_T/M/B -> LV_LAYOUT_ROW_TOP/MID/BOTTOM
Reworked and improved object
dropdown
: Completely reworked. Now creates a separate list when opened and can be dropped to down/up/left/right.label
:body_draw
is removed, instead, if its style has a visible background/border/shadow etc it will be drawn. Padding really makes the object larger (not just virtually as before)arc
: can draw background too.btn
: doesn't store styles for each state because it's done naturally in the new style system.calendar
: highlight the pressed datum. The used styles are changed: useLV_CALENDAR_PART_DATE
normal for normal dates, checked for highlighted, focused for today, pressed for the being pressed. (checked+pressed, focused+pressed also work)chart
: only hasLINE
andCOLUMN
types because with new styles all the others can be described. LV_CHART_PART_SERIES sets the style of the series. bg_opa > 0 draws an area in LINE mode.LV_CHART_PART_SERIES_BG
also added to set a different style for the series area. Padding inLV_CHART_PART_BG
makes the series area smaller, and it ensures space for axis labels/numbers.linemeter
,gauge
: can have background if the related style properties are set. Padding makes the scale/lines smaller. scale_border_width and scale_end_border_width allow to draw an arc on the outer part of the scale lines.gauge
:lv_gauge_set_needle_img
allows use image as needlecanvas
: allow drawing to true color alpha and alpha only canvas, addlv_canvas_blur_hor/ver
and renamelv_canvas_rotate
tolv_canvas_transform
textarea
: If available in the font use bullet (U+2022
) character in text area password
New object types
lv_objmask
: masks can be added to it. The children will be masked accordingly.
Others
- Change the built-in fonts to Montserrat and add built-in fonts from 12 px to 48 px for every 2nd size.
- Add example CJK and Arabic/Persian/Hebrew built-in font
- Add ° and "bullet" to the built-in fonts
- Add Arabic/Persian script support: change the character according to its position in the text.
- Add
playback_time
to animations. - Add
repeat_count
to animations instead of the current "repeat forever". - Replace
LV_LAYOUT_PRETTY
withLV_LAYOUT_PRETTY_TOP/MID/BOTTOM
Demos
- lv_examples was reworked and new examples and demos were added
New release policy
- Maintain this Changelog for every release
- Save old major version in new branches. E.g.
release/v6
- Merge new features and fixes directly into
master
and release a patch or minor releases every 2 weeks.
Migrating from v6 to v7
- First and foremost, create a new
lv_conf.h
based onlv_conf_template.h
. - To try the new version it suggested using a simulator project and see the examples.
- If you have a running project, the most difficult part of the migration is updating to the new style system. Unfortunately, there is no better way than manually updating to the new format.
- The other parts are mainly minor renames and refactoring as described above.