diff --git a/docs/CHANGELOG.rst b/docs/CHANGELOG.rst index f374e197d..a349ef68b 100644 --- a/docs/CHANGELOG.rst +++ b/docs/CHANGELOG.rst @@ -3,4134 +3,140 @@ Changelog ========= -`v8.3.7 `__ 3 May 2023 ----------------------------------------------------------------------------- +v9.0.0 +~~~~~~ -New Features -~~~~~~~~~~~~ +Migration guide +^^^^^^^^^^^^^^^ -- feat(btnmatrix): review ctrl map and allow width values to be max 15 `a150b15 `_ +As v9 is a major version it contains API breaking changes too. Most of the conceptual changes in v9 were internal, however the API was affected some widgets reword and refactoring as well. -Fixes -~~~~~ -- fix (spinbox): doubling characters entered from the keyboard `4190 `_ -- fix(arm-2d): fix transform-chrome-keying issue `4178 `_ -- fix(menu): prevent setting the current page again `4136 `_ -- fix(esp): fix ESP-IDF pedantic builds (backport v8.3) `4135 `_ -- fix: color mixing with LV_COLOR_SWAP == 1 `4101 `_ -- fix(indev): fix integer overflow in recursive zoom calculation `a0795b4 `_ -- fix(style): fix trasition on bg_grad color `48d7878 `_ +IMPORTANT +--------- -`v8.3.6 `__ 3 April 2023 ------------------------------------------------------------------------------- +These changes will not result in compiler error, but LVGL might not work due to related issues. So pay extra attention to these: -New Features -~~~~~~~~~~~~ +- :cpp:func`lv_display_set_draw_buffers(display, buf1, buf2, buf_size_byte, mode)` is more or less the equivalent of ``lv_disp_draw_buf_init(&draw_buf_dsc, buf1, buf2, buf_size_px)`` from v8, however in **v9 the buffer size is set in bytes**. +- In v9 ``lv_color_t`` is always RGB888 regardless of ``LV_COLOR_DEPTH``. +- ``lv_conf.h`` has been changed a lot, so don't forget to update it from ``lv_conf_template.h`` -- feat(msg): add lv_msg_unsubcribe_obj `6af0179 `__ -Performance -~~~~~~~~~~~ +Main new features +----------------- -Fixes -~~~~~ +- Run time display color format adjustment with RGB888 support +- Built-in support ``pthread``, ``FreeRTOS`` and other (RT)OSes which are used during rendering +- Built-in support LVGL's, C library, and other ``stdlib``s +- Better parallel rendering architecture. See the details `here `__ +- Built in display and touch driver: SDL, Linux Frame buffer, NuttX LCD and touch drivers, ST7789 and ILI9341 driver are available and more will come soon +- `lv_observer `__ allows to bind data to UI elements and create a uniform and easy to maintain API +- GitHub CodeSpace integration makes possible to run LVGL in an Online VSCode editor with 3 click. See more `here `__ +- Add vector graphics support via ThorVG. It can be used to draw vector graphics to a `Canvas `__ +- `lv_image `__ supports aligning, stretching or tiling the image source if the widget is larger or smaller. -- fix(group): fix default_group becomes wild pointer when deleted `4076 `__ -- fix(fs_posix): allow creating new file and set permission. `3976 `__ -- fix(img): support negative angles `3846 `__ -- fix(gif): synchronize with master `4003 `__ -- fix(gpu): fix STM GPU drivers for some variants `4004 `__ -- fix(img): possible divide by 0 exception (lvgl#3988) `3990 `__ -- fix(arc): fix knob area invalidation `d0e19eb `__ -- fix(slider): consider animations on pressing `0b7777f `__ -- fix(bar): delete running animations when a new value is set without animation `aa31380 `__ -- docs: use a fixed commit of lv_web_emscripten `501230e `__ +General API changes +------------------- -Examples -~~~~~~~~ -Docs -~~~~ +Although `lv_api_map.h `__ address most of the refactoring we encourage you to use the latest API directly. -- docs(arduino): add note to not use lv_examples library `2f294aa `__ -- docs: use a fixed commit of lv_web_emscripten `501230e `__ +- ``lv_disp_...`` is renamed to ``lv_display_...`` +- ``btn_...`` is renamed to ``button_...`` +- ``btnmatrix_...`` is renamed to ``buttonmatrix_...`` +- ``img_...`` is renamed to ``image_...`` +- ``zoom`` is renamed to ``scale`` +- ``angle`` is renamed to ``rotation`` +- ``scr`` is renamed to ``screen`` +- ``act`` is renamed to ``active`` +- ``del`` is renamed to ``delete`` +- ``col`` is renamed to ``column`` +- ``lv_obj_clear_flag`` is renamed to ``lv_obj_remove_flag`` +- ``lv_obj_clear_state`` is renamed to ``lv_obj_remove_state`` +- ``lv_coord_t`` was removed and replaced by ``int32_t`` -CI and tests -~~~~~~~~~~~~ +New color format management +--------------------------- + +- ``LV_IMG_CF_...`` was replaced by ``LV_COLOR_FORMAT_...`` +- ``LV_COLOR_DEPTH 24`` is supported for RGB888 rendering +- ``lv_color_t`` always means RGB888 + +Display API +----------- + +- ``lv_disp_drv_t`` and ``lv_disp_draw_buf_t`` was removed +- To create a display and set it up: + +.. code:: c + + lv_display_t * disp = lv_display_create(hor_res, ver_res) + lv_display_set_flush_cb(disp, flush_cb); + lv_display_set_draw_buffers(disp, buf1, buf2, buf_size_in_bytes, mode); + +- Note that now **buf size is in bytes and not pixels** +- ``mode`` can be: + + - ``LV_DISPLAY_RENDER_MODE_PARTIAL`` This way the buffers can be + smaller then the display to save RAM. At least 1/10 screen sized + buffer(s) are recommended. + - ``LV_DISPLAY_RENDER_MODE_DIRECT`` The buffer(s) has to be screen + sized and LVGL will render into the correct location of the + buffer. This way the buffer always contain the whole image. With 2 + buffers the buffers’ content are kept in sync automatically. (Old + v7 behavior) + - ``LV_DISPLAY_RENDER_MODE_FULL`` Just always redraw the whole + screen. With 2 buffers is a standard double buffering. + +- Similarly to the widgets, now you can attach events to the display + too, using ``lv_display_add_event()`` +- ``monitor_cb`` is removed and ``LV_EVENT_RENDER_READY`` event is + fired instead +- Instead of having display background color and image, + ``lv_layer_bottom()`` is added where any color can be set or any + widget can be created. +- The target color format can be adjusted in the display in runtime by calling + ``lv_display_set_color_format(disp, LV_COLOR_FORMAT_...)`` +- ``LV_COLOR_16_SWAP`` is removed and ``lv_draw_sw_rgb565_swap()`` can be called manually + in the ``flush_cb`` if needed to swap the in-place. +- ``disp_drv.scr_transp`` was removed and + ``lv_display_set_color_format(disp, LV_COLOR_FORMAT_NATIVE_ALPHA)`` + can be used instead +- ``set_px_cb`` is removed. You can can convert the rendered image in the ``flush_cb``. +- For more details check out the docs + `here /porting/display>`__ and + `here /overview/display>`__. + +Indev API +--------- + +- Similarly to the display ``lv_indev_drv_t`` was removed and an input + device can be created like this: +- Similarly to the widgets, now you can attach events to the indevs + too, using ``lv_indev_add_event()`` +- The ``feedback_cb`` was removed, instead ``LV_EVENT_PRESSED/CLICKED/etc`` + events are sent to the input device + +.. code:: c + + lv_indev_t * indev = lv_indev_create(); + lv_indev_set_type(indev, LV_INDEV_TYPE_...); + lv_indev_set_read_cb(indev, read_cb); Others ~~~~~~ -- chore(cmsis-pack): update cmsis-pack for v8.3.6 `4108 `__ -- chore: update the version numbers to v8.3.5-dev `77670fb `__ -- Update build_html_examples.sh `399069b `__ +- ``lv_msg`` is removed and replaced by + `lv_observer `__ +- ``lv_chart`` ticks support was removed, + `lv_scale `__ can be + used instead +- ``lv_msgbox`` is update to be more flexible. It uses normal button instead of button matrix +- ``lv_tabview`` was updated to user real button instead of a button matrix -`v8.3.5 `__ 7 February 2023 ---------------------------------------------------------------------------------- - -Performance -~~~~~~~~~~~ - -- perf(gpu): improve NXP's PXP and VGLite accelerators - `3952 `__ -- perf(dam2d): rework stm32 dma2d - `3904 `__ - -Fixes -~~~~~ - -- fix(monkey): remove executable permissions from source files - `3971 `__ -- fix(ci): set Ubuntu version for MicroPython test - `3865 `__ -- fix(Kconfig): fix wrong type of LV_FS_STDIO_CACHE_SIZE (v8.3) - `3906 `__ -- docs(indev): fix the name of long_press_repeat_time (was - long_press_rep_time) - `34c545e `__ -- fix(roller): consider the recolor setting of the label - `39f4247 `__ - -Examples -~~~~~~~~ - -Docs +v8.3 ~~~~ -- docs(indev): fix the name of long_press_repeat_time (was - long_press_rep_time) - `34c545e `__ +For Other v8.3.x releases visit the `Changelog in the release/v8.3 branch `__ . -CI and tests -~~~~~~~~~~~~ - -- ci(esp): fix push to the component registry on tag - `e529230 `__ - -Others -~~~~~~ - -- chore(cmsis-pack): update cmsis-pack for v8.3.5 - `3972 `__ - -- chore: add an option to "LV_TICK_CUSTOM" - `3879 `__ - -- bump version numbers to v8.3.5-dev - `47c8f8f `__ - -- Update layer.md - `9faca8a `__ - -`v8.3.4 `__ 15 December 2022 ----------------------------------------------------------------------------------- - -New Features -~~~~~~~~~~~~ - -- feat(keyboard): ported arabic keyboard from release 7.10.0 - `3728 `__ -- feat(table): scroll to the selected cell with key navigation - `39d03a8 `__ - -.. _fixes-1: - -Fixes -~~~~~ - -- fix(rt-thread): sync rt-thread v5.0.0 rt_align - `3864 `__ -- fix(draw): SDL2 gradient support #3848 - `3856 `__ -- fix(esp.cmake): add demos and examples - `3784 `__ -- fix(indev): fix scrolling on transformed objects - `84cf05d `__ -- fix(style): add the missing support for pct pivot in tranasform style - properties - `c8e584f `__ -- fix(flex): be sure obj->w_layout and h_layout can't be set at the - same time - `c4c4007 `__ -- fix(chart): fix very dense bar charts - `bb2c2ac `__ -- fix(draw): handle LV_COLOR_DEPTH == 1 too in lv_draw_sw_transform - `bd11ad8 `__ -- fix(example): fix warnings - `1e3ca25 `__ -- fix(benchmark): fix warnings - `1ed026c `__ -- fix(draw): fix text color with sub pixel rendering and BGR order - `e050f5c `__ -- fix(meter): fix setting part_draw_dsc.id in needle img drawing - `716e5e2 `__ -- fix(gridnav): fix stucking in pressed state with encoder - `ad56dfa `__ -- fix(darw): add back the disappeared antialiasing=0 support - `2c17b28 `__ -- fix(msg): fix typos in API by adding wrappers - `41fa416 `__ -- fix(draw): fix transformation accuracy - `e06f03d `__ -- fix(style): remove the redundant define of LV_GRADIENT_MAX_STOPS - `903e94b `__ -- demo(benchmark): fix lv_label_set_text_fmt format strings - `ae38258 `__ -- demo(benchmark): fix warning - `1173dcb `__ - -`v8.3.3 `__ 06 October 2022 ---------------------------------------------------------------------------------- - -v8.3.3 is the same as v8.3.2. It was released only because the version -number was set incorrectly in lvgl.h. - -`v8.3.2 `__ 27 September 2022 ------------------------------------------------------------------------------------ - -.. _fixes-2: - -Fixes -~~~~~ - -- fix(fragment): fixed child fragment event dispatch - `3683 `__ -- fix(sdl): clear streaming/target texture with FillRect - `3682 `__ -- fix(sdl): transformation with alpha (#3576) - `3678 `__ -- fix(draw_sw): fix image cache to access the freed stack space - `3584 `__ -- fix(style): use compile time prop_cnt for const styles - `3609 `__ -- fix(demo): can not found lvgl.h file - `3477 `__ -- fix(ci) checkout lv_micropython release/v8 branch - `3524 `__ -- fix(canvas): fix clipéping on transformation - `b884aba `__ -- fix(draw): allow drawing outline with LV_DRAW_COMPLEX == 0 too - `ece3495 `__ -- fix(colorwheel): fix updating color when using lv_colorwheel_set_hsv - `d59bba1 `__ -- fix(slider): find the nearest value on click instead of floor - `dfd14fa `__ -- fix(draw): fix border drawing with thick borders - `d5b2a9b `__ -- fix(refr): fix true double double buffering logic with transparent - screens - `8b605cc `__ -- fix(group): be sure obj is removed from its current group in - lv_group_add_obj - `5156ee0 `__ -- fix(style): add missing invalidation in - lv_obj_remove_local_style_prop - `a0515ba `__ - -.. _docs-1: - -Docs -~~~~ - -- docs(draw) remove reference to old lv_fs_add_drv function - `3564 `__ -- docs(disp): LV_COLOR_SCREEN_TRANSP remove dependency on - LV_COLOR_DEPTH_32 as transparency is supported across all color - depths `3556 `__ - -.. _ci-and-tests-1: - -CI and tests -~~~~~~~~~~~~ - -- ci: protect test.c with #if LV_BUILD_TEST - `be485d7 `__ - -.. _others-1: - -Others -~~~~~~ - -- chore(rt-thread) backport fixes from v9 - `3604 `__ - -- chore: fix warnings - `7640950 `__ - -- remove accidentally added code - `5022476 `__ - -`v8.3.1 `__ 25 July 2022 ------------------------------------------------------------------------------- - -.. _fixes-3: - -Fixes -~~~~~ - -- fix(led): add bg_color draw descriptors back to led draw event to - support LV_DRAW_COMPLEX 0 - `3515 `__ -- fix(slider): fix knob drawing in symmetrical mode - `2967172 `__ -- fix(refr): fix lv_refr_get_top_obj - `9750c97 `__ -- fix(arc): fix arc knob invalidation in SYMMETRICAL mode - `a283273 `__ - -.. _examples-1: - -Examples -~~~~~~~~ - -- example(freetype): Update the Micropython example to use the Lato - font - `71913d3 `__ -- example(freetype): replace the arial font with lato to avoid - licensing issues - `8544cc3 `__ - -.. _docs-2: - -Docs -~~~~ - -- docs(readme): fix LVGL version typo (8.3.0) - `3462 `__ -- docs(tasmota): support LVGL 8.3.0 (#3511) - `62662f6 `__ - -`v8.3.0 `__ 6 July 2022 ------------------------------------------------------------------------------ - -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 (not - bg_opa, border_opa, etc) and blend_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) and initial (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-1: - -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-1: - -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-4: - -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_screen_load work better with lv_screen_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-2: - -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 explicitly check - which part is drawn - `6b2eac1 `__ -- example(slider): make lv_example_slider_3 work with dark theme too - `4a766c5 `__ -- example(span): avoid ambiguous meaning - `7bb09e3 `__ -- demo(benchmark): add LV_DEMO_BENCHMARK_RGB565A8 option - `afaa8c9 `__ - -.. _docs-3: - -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-2: - -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 `__ - -`v8.2.0 `__ 31 January 2022 --------------------------------------------------------------------------------------- - -.. _overview-1: - -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 -~~~~~~~~~~~~~~~~ - -- .. warning:: feat(fs): add caching option for lv_fs-read `2979 `__ -- .. warning:: feat(span): lv_spangroup_get_expand_width() adds a parameter `2968 `__ -- .. warning:: arch(draw): allow replacing the draw engine `db53ea9 `__ -- .. warning:: 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-2: - -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-2: - -Performance -~~~~~~~~~~~ - -- perf(sdl): optimize the use of SDL_RenderSetClipRect - `2941 `__ -- perf(color): add faster lv_color_hex function - `2864 `__ - -.. _fixes-5: - -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_delete() 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 - `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): further 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-3: - -Examples -~~~~~~~~ - -- example: add non-null judgment to lv_example_obj_2 - `2799 `__ -- example(table): fix text alignment - `b03dc9c `__ - -.. _docs-4: - -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-3: - -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-2: - -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-1: - -Breaking Changes -~~~~~~~~~~~~~~~~ - -- .. warning:: feat(calendar): add the header directly into the calendar widget `2e08f80 `__ - -.. _architectural-1: - -Architectural -~~~~~~~~~~~~~ - -- arch add small 3rd party libs to lvgl - `2569 `__ - -.. _new-features-3: - -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 v8 lv_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_delete_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-3: - -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-6: - -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 752fba34f677ad73aee - `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_delete(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 warnings introduced by 3fb8baf5 - `e302403 `__ - -- 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 - `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_screen_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(chart) fix typo in 655f42b8 - `6118d63 `__ - -- 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-4: - -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-5: - -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 to - LV_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
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 flag - `706f81e `__ - -- 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-4: - -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-2: - -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 `__ - -- delete(.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 -- 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 -- 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 in LV_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 be - static -- ...disp_buf... is renamed to draw_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 and ver_res need to be set in disp_drv -- indev_read_cb returns void. To indicate that there is more - that to read set data->continue_reading = 1 in the read_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 parent -- lv_obj_align_to can align to an object but doesn't save the - alignment -- lv_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 on - lv_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 of lv_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-4: - -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-1: - -Bugfixes -~~~~~~~~ - -- fix(draw) overlap outline with background to prevent aliasing - artifacts -- fix(indev) clear the indev's act_obj in lv_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-5: - -New features -~~~~~~~~~~~~ - -- feat(indev) allow input events to be passed to disabled objects -- feat(spinbox) add inline get_step function for MicroPython support - -.. _bugfixes-2: - -Bugfixes -~~~~~~~~ - -- fix(btnmatrix) fix lv_btnmatrix_get_active_btn_text() when used in a - group - -v7.9.1 (19.01.2021) -------------------- - -.. _bugfixes-3: - -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-6: - -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-4: - -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-5: - -Bugfixes -~~~~~~~~ - -- fix(lv_screen_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-7: - -New features -~~~~~~~~~~~~ - -- make DMA2D non blocking -- add unscii-16 built-in font -- add KConfig -- add lv_refr_get_fps_avg() - -.. _bugfixes-6: - -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-7: - -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-8: - -Bugfixes -~~~~~~~~ - -- Respect btnmatrix's one_check in lv_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-8: - -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-9: - -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-10: - -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-9: - -New features -~~~~~~~~~~~~ - -- Check whether any style property has changed on a state change to - decide if any redraw is required - -.. _bugfixes-11: - -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-10: - -New features -~~~~~~~~~~~~ - -- Add clean_dcache_cb and lv_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-12: - -Bugfixes -~~~~~~~~ - -- Fix unexpected DEFOCUS on lv_page when clicking to bg after the - scrollable -- Fix lv_obj_del and lv_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-11: - -New features -~~~~~~~~~~~~ - -- Add lv_font_load() function - Loads a lv_font_t object from a - binary font file -- Add lv_font_free() function - Frees the memory allocated by the - lv_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-13: - -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-14: - -Bugfixes -~~~~~~~~ - -- Fix drawing value string twice -- Rename lv_chart_clear_serie to lv_chart_clear_series and - lv_obj_align_origo to lv_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 before - lv_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-12: - -New features -~~~~~~~~~~~~ - -- Add lv_task_get_next -- Add lv_event_send_refresh, lv_event_send_refresh_recursive to - easily send LV_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 and - LV_THEME_MATERIAL_FLAG_NO_FOCUS flags -- Reduce code size by adding: LV_USE_FONT_COMPRESSED and - LV_FONT_USE_SUBPX and applying some optimization -- Add LV_MEMCPY_MEMSET_STD to use standard memcpy and - memset - -.. _bugfixes-15: - -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-13: - -New features -~~~~~~~~~~~~ - -- Add screen transitions with lv_screen_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 to lv_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 on lv_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 replace theme->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() and lv_obj_align_y() functions -- Add lv_obj_align_origo_x() and lv_obj_align_origo_y() - functions - -.. _bugfixes-16: - -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-14: - -New features -~~~~~~~~~~~~ - -- Add focus_parent attribute to lv_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 to lv_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-17: - -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-18: - -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 missing LV_EVENT_VALUE_CHANGED event when - used with encoder -- lv_tileview: fix if not the {0;0} tile is created first -- lv_debug: restructure to allow asserting in from lv_misc too -- add assert if _lv_mem_buf_get() fails -- lv_textarea: fix character delete in password mode -- Update LV_OPA_MIN and LV_OPA_MAX to widen the opacity - processed range -- lv_btnm fix sending events for hidden buttons -- lv_gaguge make lv_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-19: - -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 formatting - -v7.0.0 (18.05.2020) -------------------- - -Documentation -~~~~~~~~~~~~~ - -The docs for v7 is available at `__ -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: use LV_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 has LINE and COLUMN 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 in LV_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 needle -- canvas: allow drawing to true color alpha and alpha only canvas, - add lv_canvas_blur_hor/ver and rename lv_canvas_rotate to - lv_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-3: - -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 with LV_LAYOUT_PRETTY_TOP/MID/BOTTOM - -Demos -~~~~~ - -- `lv_examples `__ was - reworked and new examples and demos were added - -.. _new-release-policy-1: - -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 on - lv_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. diff --git a/docs/widgets/image.rst b/docs/widgets/image.rst index 63ea3094f..b7ae28fd3 100644 --- a/docs/widgets/image.rst +++ b/docs/widgets/image.rst @@ -92,22 +92,6 @@ the same image. This feature can be enabled in the style by setting The color to mix is set by ``img_recolor``. -Auto-size ---------- - -If the width or height of the image object is set to :c:macro:`LV_SIZE_CONTENT` -the object's size will be set according to the size of the image source -in the respective direction. - -Mosaic ------- - -If the object's size is greater than the image size in any directions, -then the image will be repeated like a mosaic. This allows creation a -large image from only a very narrow source. For example, you can have a -*300 x 5* image with a special gradient and set it as a wallpaper using -the mosaic feature. - Offset ------ @@ -118,20 +102,21 @@ source size. Using the offset parameter a `Texture atlas `__ the x or y offset. Transformations -*************** +--------------- Using the :cpp:expr:`lv_image_set_scale(img, factor)` the images will be zoomed. -Set ``factor`` to ``256`` or :c:macro:`LV_ZOOM_NONE` to disable zooming. A +Set ``factor`` to ``256`` or :c:macro:`LV_SCALE_NONE` to disable zooming. A larger value enlarges the images (e.g. ``512`` double size), a smaller value shrinks it (e.g. ``128`` half size). Fractional scale works as well. E.g. ``281`` for 10% enlargement. +:cpp:expr:`lv_image_set_scale_x(img, factor)` and +:cpp:expr:`lv_image_set_scale_y(img, factor)` also can be used to +the scale independently horizontally and vertically (non-uniform scale). + To rotate the image use :cpp:expr:`lv_image_set_rotation(img, angle)`. Angle has 0.1 degree precision, so for 45.8° set 458. -The ``transform_zoom`` and ``transform_angle`` style properties are also -used to determine the final zoom and angle. - By default, the pivot point of the rotation is the center of the image. It can be changed with :cpp:expr:`lv_image_set_pivot(img, pivot_x, pivot_y)`. ``0;0`` is the top left corner. @@ -141,9 +126,8 @@ The quality of the transformation can be adjusted with the transformations are higher quality but slower. The transformations require the whole image to be available. Therefore -indexed images (``LV_IMG_CF_INDEXED_...``), alpha only images -(``LV_IMG_CF_ALPHA_...``) or images from files can not be transformed. -In other words transformations work only on true color images stored as +indexed images (``LV_COLOR_FORMAT_I1/2/4/8_...``), alpha only images cannot be transformed. +In other words transformations work only on normal (A)RGB or A8 images stored as C array, or if a custom `Image decoder `__ returns the whole image. @@ -159,28 +143,34 @@ differences are that pure image widget transformation - doesn't transform the children of the image widget - image is transformed directly without creating an intermediate layer (buffer) to snapshot the widget -Size mode ---------- +Align +----- -By default, when the image is zoomed or rotated the real coordinates of -the image object are not changed. The larger content simply overflows -the object's boundaries. It also means the layouts are not affected the -by the transformations. +By default the image widget's width and height is :cpp:expr:`LV_SIZE_CONTENT`. +It means the the widget will be sized automatically according to the image source. -If you need the object size to be updated to the transformed size set -:cpp:expr:`lv_image_set_size_mode(img, LV_IMAGE_SIZE_MODE_REAL)`. (The previous mode -is the default and called :cpp:enumerator:`LV_IMAGE_SIZE_MODE_VIRTUAL`). In this case if -the width/height of the object is set to :c:macro:`LV_SIZE_CONTENT` the -object's size will be set to the zoomed and rotated size. If an explicit -size is set then the overflowing content will be cropped. +If the widget's width or height is set the smaller value the ``align`` property tells +how to align the image source inside the widget. The alignment set any of these: -Rounded image -------------- +- :cpp:expr`LV_IMAGE_ALIGN_DEFAULT` Meaning top left +- :cpp:expr`LV_IMAGE_ALIGN_TOP_LEFT` +- :cpp:expr`LV_IMAGE_ALIGN_TOP_MID` +- :cpp:expr`LV_IMAGE_ALIGN_TOP_RIGHT` +- :cpp:expr`LV_IMAGE_ALIGN_BOTTOM_LEFT` +- :cpp:expr`LV_IMAGE_ALIGN_BOTTOM_MID` +- :cpp:expr`LV_IMAGE_ALIGN_BOTTOM_RIGHT` +- :cpp:expr`LV_IMAGE_ALIGN_LEFT_MID` +- :cpp:expr`LV_IMAGE_ALIGN_RIGHT_MID` +- :cpp:expr`LV_IMAGE_ALIGN_CENTER` -You can use :cpp:func:`lv_obj_set_style_radius` to set radius to an image, and -enable :cpp:func:`lv_obj_set_style_clip_corner` to clip the content to rounded -rectangle or circular shape. Please note this will have some negative -performance impact to CPU based renderers. +The ``offset`` value is applied after the image source is aligned. For example setting an ``y=-10`` and :cpp:expr`LV_IMAGE_ALIGN_CENTER` +will move the image source up a little bit from the center of the widget. + +Or to automatically scale or tile the image +- :cpp:expr`LV_IMAGE_ALIGN_STRETCH` Set X and Y scale to fill the widget's area +- :cpp:expr`LV_IMAGE_ALIGN_TILE` Tile the image to will the widget area. Offset is applied to shift the tiling. + +The alignment can be set by :cpp:func:`lv_image_set_align(image, align)` Events ******