Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2b56e04205 | ||
|
|
177900b033 | ||
|
|
203e7fc97d | ||
|
|
7345e62355 | ||
|
|
48d7878bac | ||
|
|
a0795b49e8 | ||
|
|
a150b15e45 | ||
|
|
a95714ba7c | ||
|
|
8536152d81 | ||
|
|
6314441839 |
@@ -1,5 +1,23 @@
|
||||
# Changelog
|
||||
|
||||
## [v8.3.7](https://github.com/lvgl/lvgl/compare/v8.3.7...v8.3.6) 3 May 2023
|
||||
|
||||
### New Features
|
||||
|
||||
- feat(btnmatrix): review ctrl map and allow width values to be max 15 [`a150b15`](https://github.com/lvgl/lvgl/commit/a150b15e45a922eb5497fe5a31a480e1cd689246)
|
||||
|
||||
### Fixes
|
||||
|
||||
- fix (spinbox): doubling characters entered from the keyboard [`4190`](https://github.com/lvgl/lvgl/pull/4190)
|
||||
- fix(arm-2d): fix transform-chrome-keying issue [`4178`](https://github.com/lvgl/lvgl/pull/4178)
|
||||
- fix(menu): prevent setting the current page again [`4136`](https://github.com/lvgl/lvgl/pull/4136)
|
||||
- fix(esp): fix ESP-IDF pedantic builds (backport v8.3) [`4135`](https://github.com/lvgl/lvgl/pull/4135)
|
||||
- fix: color mixing with LV_COLOR_SWAP == 1 [`4101`](https://github.com/lvgl/lvgl/pull/4101)
|
||||
|
||||
- fix(indev): fix integer overflow in recursive zoom calculation [`a0795b4`](https://github.com/lvgl/lvgl/commit/a0795b49e82102ad68a27c86c36c37fffbe66d3c)
|
||||
- fix(style): fix trasition on bg_grad color [`48d7878`](https://github.com/lvgl/lvgl/commit/48d7878bac3f607322957ed6f710d6615d5e72e0)
|
||||
|
||||
|
||||
## [v8.3.6](https://github.com/lvgl/lvgl/compare/v8.3.6...v8.3.5) 3 April 2023
|
||||
|
||||
### New Features
|
||||
|
||||
@@ -25,7 +25,7 @@ So in the example the first row will have 2 buttons each with 50% width and a se
|
||||
The buttons' width can be set relative to the other button in the same row with `lv_btnmatrix_set_btn_width(btnm, btn_id, width)`
|
||||
E.g. in a line with two buttons: *btnA, width = 1* and *btnB, width = 2*, *btnA* will have 33 % width and *btnB* will have 66 % width.
|
||||
It's similar to how the [`flex-grow`](https://developer.mozilla.org/en-US/docs/Web/CSS/flex-grow) property works in CSS.
|
||||
The width must be in the \[1..7\] range and the default width is 1.
|
||||
The width must be in the \[1..15\] range and the default width is 1.
|
||||
|
||||
In addition to the width, each button can be customized with the following parameters:
|
||||
- `LV_BTNMATRIX_CTRL_HIDDEN` Makes a button hidden (hidden buttons still take up space in the layout, they are just not visible or clickable)
|
||||
|
||||
@@ -15,6 +15,7 @@ if(LV_MICROPYTHON)
|
||||
else()
|
||||
if(CONFIG_LV_BUILD_EXAMPLES)
|
||||
file(GLOB_RECURSE EXAMPLE_SOURCES ${LVGL_ROOT_DIR}/examples/*.c)
|
||||
set_source_files_properties(${EXAMPLE_SOURCES} COMPILE_FLAGS "-Wno-unused-variable -Wno-format")
|
||||
endif()
|
||||
|
||||
if(CONFIG_LV_USE_DEMO_WIDGETS)
|
||||
@@ -36,6 +37,7 @@ else()
|
||||
if(CONFIG_LV_USE_DEMO_MUSIC)
|
||||
file(GLOB_RECURSE DEMO_MUSIC_SOURCES ${LVGL_ROOT_DIR}/demos/music/*.c)
|
||||
list(APPEND DEMO_SOURCES ${DEMO_MUSIC_SOURCES})
|
||||
set_source_files_properties(${DEMO_MUSIC_SOURCES} COMPILE_FLAGS "-Wno-format")
|
||||
endif()
|
||||
|
||||
idf_component_register(SRCS ${SOURCES} ${EXAMPLE_SOURCES} ${DEMO_SOURCES}
|
||||
|
||||
Binary file not shown.
@@ -36,6 +36,10 @@
|
||||
<repository type="git">https://github.com/lvgl/lvgl.git</repository>
|
||||
|
||||
<releases>
|
||||
<release date="2023-04-28" version="8.3.7" url="https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/LVGL.lvgl.8.3.7.pack">
|
||||
- LVGL 8.3.7
|
||||
- Minor updates
|
||||
</release>
|
||||
<release date="2023-04-02" version="8.3.6" url="https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/LVGL.lvgl.8.3.6.pack">
|
||||
- LVGL 8.3.6 release
|
||||
- Various fixes, See CHANGELOG.md
|
||||
@@ -266,7 +270,7 @@
|
||||
-->
|
||||
|
||||
<components>
|
||||
<bundle Cbundle="LVGL" Cclass="LVGL" Cversion="8.3.6">
|
||||
<bundle Cbundle="LVGL" Cclass="LVGL" Cversion="8.3.7">
|
||||
<description>LVGL (Light and Versatile Graphics Library) is a free and open-source graphics library providing everything you need to create an embedded GUI with easy-to-use graphical elements, beautiful visual effects and a low memory footprint.</description>
|
||||
<doc></doc>
|
||||
<component Cgroup="lvgl" Csub="Essential" >
|
||||
@@ -443,7 +447,7 @@
|
||||
</files>
|
||||
</component>
|
||||
|
||||
<component Cgroup="lvgl" Csub="GPU Arm-2D" condition="LVGL-GPU-Arm-2D" Cversion="1.2.0">
|
||||
<component Cgroup="lvgl" Csub="GPU Arm-2D" condition="LVGL-GPU-Arm-2D" Cversion="1.2.2">
|
||||
<description>A 2D image processing library from Arm (i.e. Arm-2D) for All Cortex-M processors including Cortex-M0</description>
|
||||
<files>
|
||||
<file category="sourceC" name="src/draw/arm2d/lv_gpu_arm2d.c" condition="Arm-2D"/>
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
<index schemaVersion="1.0.0" xs:noNamespaceSchemaLocation="PackIndex.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<vendor>LVGL</vendor>
|
||||
<url>https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/</url>
|
||||
<timestamp>2023-02-06T12:22:00</timestamp>
|
||||
<timestamp>2023-05-03</timestamp>
|
||||
<pindex>
|
||||
<pdsc url="https://raw.githubusercontent.com/lvgl/lvgl/release/v8.3/env_support/cmsis-pack/" vendor="LVGL" name="lvgl" version="8.3.6"/>
|
||||
<pdsc url="https://raw.githubusercontent.com/lvgl/lvgl/release/v8.3/env_support/cmsis-pack/" vendor="LVGL" name="lvgl" version="8.3.7"/>
|
||||
</pindex>
|
||||
</index>
|
||||
@@ -1,6 +1,6 @@
|
||||
/**
|
||||
* @file lv_conf.h
|
||||
* Configuration file for v8.3.6
|
||||
* Configuration file for v8.3.7
|
||||
*/
|
||||
|
||||
/* clang-format off */
|
||||
|
||||
@@ -1,2 +1,5 @@
|
||||
description: LVGL - Light and Versatile Graphics Library
|
||||
url: https://github.com/lvgl/lvgl
|
||||
description: LVGL - Light and Versatile Graphics Library
|
||||
url: https://lvgl.io/
|
||||
repository: https://github.com/lvgl/lvgl.git
|
||||
documentation: https://docs.lvgl.io/
|
||||
issues: https://github.com/lvgl/lvgl/issues
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "lvgl",
|
||||
"version": "8.3.6",
|
||||
"version": "8.3.7",
|
||||
"keywords": "graphics, gui, embedded, tft, lvgl",
|
||||
"description": "Graphics library to create embedded GUI with easy-to-use graphical elements, beautiful visual effects and low memory footprint. It offers anti-aliasing, opacity, and animations using only one frame buffer.",
|
||||
"repository": {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
name=lvgl
|
||||
version=8.3.6
|
||||
version=8.3.7
|
||||
author=kisvegabor
|
||||
maintainer=kisvegabor,embeddedt,pete-pjb
|
||||
sentence=Full-featured Graphics Library for Embedded Systems
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/**
|
||||
* @file lv_conf.h
|
||||
* Configuration file for v8.3.6
|
||||
* Configuration file for v8.3.7
|
||||
*/
|
||||
|
||||
/*
|
||||
|
||||
2
lvgl.h
2
lvgl.h
@@ -15,7 +15,7 @@ extern "C" {
|
||||
***************************/
|
||||
#define LVGL_VERSION_MAJOR 8
|
||||
#define LVGL_VERSION_MINOR 3
|
||||
#define LVGL_VERSION_PATCH 6
|
||||
#define LVGL_VERSION_PATCH 7
|
||||
#define LVGL_VERSION_INFO ""
|
||||
|
||||
/*********************
|
||||
|
||||
@@ -281,12 +281,13 @@ static lv_obj_t * find_scroll_obj(_lv_indev_proc_t * proc)
|
||||
while(obj_act) {
|
||||
/*Get the transformed scroll_sum with this object*/
|
||||
int16_t angle = 0;
|
||||
int16_t zoom = 256;
|
||||
int32_t zoom = 256;
|
||||
lv_point_t pivot = { 0, 0 };
|
||||
lv_obj_t * parent = obj_act;
|
||||
while(parent) {
|
||||
angle += lv_obj_get_style_transform_angle(parent, 0);
|
||||
zoom *= (lv_obj_get_style_transform_zoom(parent, 0) / 256);
|
||||
int32_t zoom_act = lv_obj_get_style_transform_zoom(parent, 0);
|
||||
zoom = (zoom * zoom_act) >> 8;
|
||||
parent = lv_obj_get_parent(parent);
|
||||
}
|
||||
|
||||
|
||||
@@ -749,6 +749,7 @@ static void trans_anim_cb(void * _tr, int32_t v)
|
||||
else value_final.ptr = tr->end_value.ptr;
|
||||
break;
|
||||
case LV_STYLE_BG_COLOR:
|
||||
case LV_STYLE_BG_GRAD_COLOR:
|
||||
case LV_STYLE_BORDER_COLOR:
|
||||
case LV_STYLE_TEXT_COLOR:
|
||||
case LV_STYLE_SHADOW_COLOR:
|
||||
|
||||
@@ -3,6 +3,24 @@
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2010-2023 Arm Limited or its affiliates. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the License); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an AS IS BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/*********************
|
||||
* INCLUDES
|
||||
*********************/
|
||||
@@ -94,6 +112,8 @@
|
||||
arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity_prepare
|
||||
#define arm_2d_tile_transform_with_opacity_prepare \
|
||||
arm_2dp_rgb565_tile_transform_with_opacity_prepare
|
||||
#define arm_2d_tile_transform_only_with_opacity_prepare \
|
||||
arm_2dp_rgb565_tile_transform_only_with_opacity_prepare
|
||||
#define arm_2d_tile_transform_prepare \
|
||||
arm_2dp_rgb565_tile_transform_prepare
|
||||
|
||||
@@ -131,6 +151,8 @@
|
||||
arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity_prepare
|
||||
#define arm_2d_tile_transform_with_opacity_prepare \
|
||||
arm_2dp_cccn888_tile_transform_with_opacity_prepare
|
||||
#define arm_2d_tile_transform_only_with_opacity_prepare \
|
||||
arm_2dp_cccn888_tile_transform_only_with_opacity_prepare
|
||||
#define arm_2d_tile_transform_prepare \
|
||||
arm_2dp_cccn888_tile_transform_prepare
|
||||
|
||||
@@ -317,7 +339,7 @@
|
||||
lv_color_t *rgb_tmp_buf = NULL; \
|
||||
if(draw_dsc->recolor_opa > LV_OPA_MIN) { \
|
||||
rgb_tmp_buf \
|
||||
= lv_malloc(src_w * src_h * sizeof(lv_color_t)); \
|
||||
= lv_mem_buf_get(src_w * src_h * sizeof(lv_color_t)); \
|
||||
if (NULL == rgb_tmp_buf) { \
|
||||
LV_LOG_WARN( \
|
||||
"Failed to allocate memory for accelerating recolour, " \
|
||||
@@ -345,7 +367,7 @@
|
||||
#define __RECOLOUR_END() \
|
||||
} while(0); \
|
||||
if (NULL != rgb_tmp_buf) { \
|
||||
lv_free(rgb_tmp_buf); \
|
||||
lv_mem_buf_release(rgb_tmp_buf); \
|
||||
} \
|
||||
} while(0); \
|
||||
src_buf = src_buf_org;
|
||||
@@ -1270,8 +1292,7 @@ static void lv_draw_arm2d_img_decoded(struct _lv_draw_ctx_t * draw_ctx,
|
||||
source_center.iX = draw_dsc->pivot.x;
|
||||
source_center.iY = draw_dsc->pivot.y;
|
||||
|
||||
if((LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED == cf) ||
|
||||
(LV_IMG_CF_TRUE_COLOR == cf)) {
|
||||
if(LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED == cf) {
|
||||
|
||||
__ARM_2D_PREPARE_TRANS_AND_TARGET_REGION(
|
||||
arm_2d_tile_transform_with_opacity_prepare,
|
||||
@@ -1289,6 +1310,24 @@ static void lv_draw_arm2d_img_decoded(struct _lv_draw_ctx_t * draw_ctx,
|
||||
);
|
||||
is_accelerated = true;
|
||||
}
|
||||
#if ARM_2D_VERISON >= 10103
|
||||
else if (LV_IMG_CF_TRUE_COLOR == cf) {
|
||||
__ARM_2D_PREPARE_TRANS_AND_TARGET_REGION(
|
||||
arm_2d_tile_transform_only_with_opacity_prepare,
|
||||
&source_tile,
|
||||
source_center,
|
||||
ARM_2D_ANGLE((draw_dsc->angle / 10.0f)),
|
||||
draw_dsc->zoom / 256.0f,
|
||||
blend_dsc.opa);
|
||||
|
||||
arm_2d_tile_transform(
|
||||
&target_tile,
|
||||
&target_region,
|
||||
NULL
|
||||
);
|
||||
is_accelerated = true;
|
||||
}
|
||||
#endif
|
||||
else if (LV_IMG_CF_RGB565A8 == cf) {
|
||||
static arm_2d_tile_t mask_tile;
|
||||
mask_tile = source_tile;
|
||||
|
||||
@@ -195,6 +195,11 @@ void lv_menu_set_page(lv_obj_t * obj, lv_obj_t * page)
|
||||
|
||||
lv_menu_t * menu = (lv_menu_t *)obj;
|
||||
|
||||
/* Guard against setting the same page again */
|
||||
if(menu->main_page == page) {
|
||||
return;
|
||||
}
|
||||
|
||||
/* Hide previous page */
|
||||
if(menu->main_page != NULL) {
|
||||
lv_obj_set_parent(menu->main_page, menu->storage);
|
||||
|
||||
@@ -434,9 +434,6 @@ static void lv_spinbox_event(const lv_obj_class_t * class_p, lv_event_t * e)
|
||||
else if(c == LV_KEY_DOWN) {
|
||||
lv_spinbox_decrement(obj);
|
||||
}
|
||||
else {
|
||||
lv_textarea_add_char(obj, c);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -440,7 +440,11 @@ LV_ATTRIBUTE_FAST_MEM static inline lv_color_t lv_color_mix(lv_color_t c1, lv_co
|
||||
{
|
||||
lv_color_t ret;
|
||||
|
||||
#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP == 0 && LV_COLOR_MIX_ROUND_OFS == 0
|
||||
#if LV_COLOR_DEPTH == 16 && LV_COLOR_MIX_ROUND_OFS == 0
|
||||
#if LV_COLOR_16_SWAP == 1
|
||||
c1.full = c1.full << 8 | c1.full >> 8;
|
||||
c2.full = c2.full << 8 | c2.full >> 8;
|
||||
#endif
|
||||
/*Source: https://stackoverflow.com/a/50012418/1999969*/
|
||||
mix = (uint32_t)((uint32_t)mix + 4) >> 3;
|
||||
uint32_t bg = (uint32_t)((uint32_t)c2.full | ((uint32_t)c2.full << 16)) &
|
||||
@@ -448,6 +452,9 @@ LV_ATTRIBUTE_FAST_MEM static inline lv_color_t lv_color_mix(lv_color_t c1, lv_co
|
||||
uint32_t fg = (uint32_t)((uint32_t)c1.full | ((uint32_t)c1.full << 16)) & 0x7E0F81F;
|
||||
uint32_t result = ((((fg - bg) * mix) >> 5) + bg) & 0x7E0F81F;
|
||||
ret.full = (uint16_t)((result >> 16) | result);
|
||||
#if LV_COLOR_16_SWAP == 1
|
||||
ret.full = ret.full << 8 | ret.full >> 8;
|
||||
#endif
|
||||
#elif LV_COLOR_DEPTH != 1
|
||||
/*LV_COLOR_DEPTH == 8, 16 or 32*/
|
||||
LV_COLOR_SET_R(ret, LV_UDIV255((uint16_t)LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) *
|
||||
|
||||
@@ -32,18 +32,19 @@ LV_EXPORT_CONST_INT(LV_BTNMATRIX_BTN_NONE);
|
||||
/** Type to store button control bits (disabled, hidden etc.)
|
||||
* The first 3 bits are used to store the width*/
|
||||
enum {
|
||||
_LV_BTNMATRIX_WIDTH = 0x0007, /**< Reserved to stire the size units*/
|
||||
LV_BTNMATRIX_CTRL_HIDDEN = 0x0008, /**< Button hidden*/
|
||||
LV_BTNMATRIX_CTRL_NO_REPEAT = 0x0010, /**< Do not repeat press this button.*/
|
||||
LV_BTNMATRIX_CTRL_DISABLED = 0x0020, /**< Disable this button.*/
|
||||
LV_BTNMATRIX_CTRL_CHECKABLE = 0x0040, /**< The button can be toggled.*/
|
||||
LV_BTNMATRIX_CTRL_CHECKED = 0x0080, /**< Button is currently toggled (e.g. checked).*/
|
||||
LV_BTNMATRIX_CTRL_CLICK_TRIG = 0x0100, /**< 1: Send LV_EVENT_VALUE_CHANGE on CLICK, 0: Send LV_EVENT_VALUE_CHANGE on PRESS*/
|
||||
LV_BTNMATRIX_CTRL_POPOVER = 0x0200, /**< Show a popover when pressing this key*/
|
||||
LV_BTNMATRIX_CTRL_RECOLOR = 0x1000, /**< Enable text recoloring with `#color`*/
|
||||
_LV_BTNMATRIX_CTRL_RESERVED = 0x2000, /**< Reserved for later use*/
|
||||
LV_BTNMATRIX_CTRL_CUSTOM_1 = 0x4000, /**< Custom free to use flag*/
|
||||
LV_BTNMATRIX_CTRL_CUSTOM_2 = 0x8000, /**< Custom free to use flag*/
|
||||
_LV_BTNMATRIX_WIDTH = 0x000F, /**< Reserved to store the size units*/
|
||||
LV_BTNMATRIX_CTRL_HIDDEN = 0x0010, /**< Button hidden*/
|
||||
LV_BTNMATRIX_CTRL_NO_REPEAT = 0x0020, /**< Do not repeat press this button.*/
|
||||
LV_BTNMATRIX_CTRL_DISABLED = 0x0040, /**< Disable this button.*/
|
||||
LV_BTNMATRIX_CTRL_CHECKABLE = 0x0080, /**< The button can be toggled.*/
|
||||
LV_BTNMATRIX_CTRL_CHECKED = 0x0100, /**< Button is currently toggled (e.g. checked).*/
|
||||
LV_BTNMATRIX_CTRL_CLICK_TRIG = 0x0200, /**< 1: Send LV_EVENT_VALUE_CHANGE on CLICK, 0: Send LV_EVENT_VALUE_CHANGE on PRESS*/
|
||||
LV_BTNMATRIX_CTRL_POPOVER = 0x0400, /**< Show a popover when pressing this key*/
|
||||
LV_BTNMATRIX_CTRL_RECOLOR = 0x0800, /**< Enable text recoloring with `#color`*/
|
||||
_LV_BTNMATRIX_CTRL_RESERVED_1 = 0x1000, /**< Reserved for later use*/
|
||||
_LV_BTNMATRIX_CTRL_RESERVED_2 = 0x2000, /**< Reserved for later use*/
|
||||
LV_BTNMATRIX_CTRL_CUSTOM_1 = 0x4000, /**< Custom free to use flag*/
|
||||
LV_BTNMATRIX_CTRL_CUSTOM_2 = 0x8000, /**< Custom free to use flag*/
|
||||
};
|
||||
|
||||
typedef uint16_t lv_btnmatrix_ctrl_t;
|
||||
|
||||
Reference in New Issue
Block a user