merge master

This commit is contained in:
Gabor Kiss-Vamosi
2021-01-23 23:50:00 +01:00
180 changed files with 774 additions and 2806 deletions
-1
View File
@@ -4,4 +4,3 @@ indent_size = 4
end_of_line = lf end_of_line = lf
insert_final_newline = true insert_final_newline = true
trim_trailing_whitespace = true trim_trailing_whitespace = true
@@ -1,14 +0,0 @@
---
name: All other issues
about: Questions and enhancement requests should go to the forum.
title: ''
labels: not-template
assignees: ''
---
# All enhancement requests or questions should be directed to the Forum.
We use GitHub issues for development related discussions.
Please use the [forum](https://forum.littlevgl.com/) to ask questions.
+27 -13
View File
@@ -1,29 +1,43 @@
--- ---
name: Bug report name: Bug report
about: Create a report to help us improve about: Create a bug report to help us improve
title: '' title: ''
labels: '' labels: ''
assignees: '' assignees: ''
--- ---
> # Important: issues that don't use this template will be ignored/closed. <!--
IMPORTANT
Issues that don't use this template will be ignored and closed.
-->
**Describe the bug** ### Perform all steps below and tick them with [x]
- [ ] Check the related part of the [Documentation](https://docs.lvgl.io/)
- [ ] Update lvgl to the latest version
- [ ] Reproduce the issue in a [Simulator](https://docs.lvgl.io/latest/en/html/get-started/pc-simulator.html)
### Describe the bug
<!--
A clear and concise description of what the bug is. A clear and concise description of what the bug is.
-->
**To Reproduce** ### To Reproduce
<!--
Please provide a small, independent code sample that can be used to reproduce the issue. Ideally this should work in the PC simulator unless the problem is specific to one platform. Provide a small, independent code sample that can be used to reproduce the issue.
Ideally this should work in the PC simulator unless the problem is specific to a platform.
**Expected behavior** Format the code like this:
```c
your code here
```
-->
### Expected behavior
<!--
A clear and concise description of what you expected to happen. A clear and concise description of what you expected to happen.
-->
**Screenshots** ### Screenshots or video
<!--
If applicable, add screenshots to help explain your problem. If applicable, add screenshots to help explain your problem.
-->
**Additional context**
Add any other context about the problem here.
+1 -1
View File
@@ -5,7 +5,7 @@ contact_links:
about: Be sure to read to documentation first about: Be sure to read to documentation first
- name: Forum - name: Forum
url: https://forum.lvgl.io url: https://forum.lvgl.io
about: For how-to questions use the forum about: For topics like How-to, Getting started, Feature request
- name: CONTIBUTING.md - name: CONTIBUTING.md
url: https://github.com/lvgl/lvgl/blob/master/docs/CONTRIBUTING.md#faq-about-contributing url: https://github.com/lvgl/lvgl/blob/master/docs/CONTRIBUTING.md#faq-about-contributing
about: The basic rules of contributing about: The basic rules of contributing
+29
View File
@@ -0,0 +1,29 @@
---
name: Development discussion
about: Discussion strictly related to the develoopment of the LVGL.
title: ''
labels: ''
assignees: ''
---
<!--
IMPORTANT
Issues that don't use this template will be ignored and closed.
Normal Feature requests should go to the Forum: https://forum.lvgl.io/c/feature-request/9
-->
### Introcude the problem
<!--
A clear and concise description of the problem.
-->
### Examples and cases
<!--
Mention some examples and cases where the problem or the missing feature is relevant
-->
### Suggested solution
<!--
If you already have an idea about the solution share it here
-->
-1
View File
@@ -39,4 +39,3 @@ jobs:
gc.collect(); gc.collect();
utime.sleep(5)" | utime.sleep(5)" |
ports/unix/micropython -i lib/lv_bindings/examples/advanced_demo.py ports/unix/micropython -i lib/lv_bindings/examples/advanced_demo.py
+16
View File
@@ -0,0 +1,16 @@
on:
issues:
types: [opened, edited]
jobs:
auto_close_issues:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Automatically close issues that don't follow the issue template
uses: lucasbento/auto-close-issues@v1.0.2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
issue-close-message: "@${issue.user.login}: hello! :wave:\n\nThis issue is being automatically closed because it does not follow the issue template." # optional property
closed-issues-label: "not-template"
+25 -14
View File
@@ -1,11 +1,23 @@
# Changelog # Changelog
## v7.9.1 (Planned at 19.01.2020)
### 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 ## v7.9.0
### New features ### New features
- feat(chart) add lv_chart_remove_series and lv_chart_hide_series - feat(chart) add lv_chart_remove_series and lv_chart_hide_series
- feat(img_cahce) allow disabling image cacheing - feat(img_cahce) allow disabling image caching
- calendar: make get_day_of_week() public - calendar: make get_day_of_week() public
- Added support for Zephyr integration
### Bugfixes ### Bugfixes
- fix(draw_rect) free buffer used for arabic processing - fix(draw_rect) free buffer used for arabic processing
@@ -15,8 +27,11 @@
- fix(textarea) cursor position after hiding character in password mode - fix(textarea) cursor position after hiding character in password mode
- fix(linemeter) draw critical lines with correct color - fix(linemeter) draw critical lines with correct color
- fix(lv_conf_internal) be sure Kconfig defines are always uppercase - 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 (Plannad at 15.12.2020) ## v7.8.1
### Bugfixes ### Bugfixes
- fix(lv_scr_load_anim) fix when multiple screen are loaded at tsame time with delay - fix(lv_scr_load_anim) fix when multiple screen are loaded at tsame time with delay
@@ -43,7 +58,7 @@
- fix reference to LV_DRAW_BUF_MAX_NUM in lv_mem.c - 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(polygon draw) join adjacent points if they are on the same coordinate
- fix(linemeter) fix invalidation when setting new value - fix(linemeter) fix invalidation when setting new value
- fix(table) add missing invalidation when changeing cell type - fix(table) add missing invalidation when changing cell type
- refactor(roller) rename LV_ROLLER_MODE_INIFINITE -> LV_ROLLER_MODE_INFINITE - refactor(roller) rename LV_ROLLER_MODE_INIFINITE -> LV_ROLLER_MODE_INFINITE
## v7.7.2 (17.11.2020) ## v7.7.2 (17.11.2020)
@@ -53,7 +68,7 @@
- fix(arc) fix and improve arc dragging - fix(arc) fix and improve arc dragging
- label: Repair calculate back `dot` character logical error which cause infinite loop. - label: Repair calculate back `dot` character logical error which cause infinite loop.
- fix(theme_material): remove the bottom border from tabview header - fix(theme_material): remove the bottom border from tabview header
- fix(imgbtn) guess a the closest availabe state with valid src - fix(imgbtn) guess a the closest available state with valid src
- fix(spinbox) update cursor position in lv_spinbox_set_step - fix(spinbox) update cursor position in lv_spinbox_set_step
## v7.7.1 (03.11.2020) ## v7.7.1 (03.11.2020)
@@ -70,7 +85,7 @@
- Allow max. 16 cell types for table - Allow max. 16 cell types for table
- Add `lv_table_set_text_fmt()` - Add `lv_table_set_text_fmt()`
- Use margin on calendar header to set distances and padding to the size of the header - Use margin on calendar header to set distances and padding to the size of the header
- Add `text_sel_bg` style proeprty - Add `text_sel_bg` style property
### Bugfixes ### Bugfixes
- Theme update to support text selection background - Theme update to support text selection background
@@ -93,7 +108,6 @@
- Fix imgbtn image switching with empty style - Fix imgbtn image switching with empty style
- Material theme: do not set the text font to allow easy global font change - Material theme: do not set the text font to allow easy global font change
## v7.6.0 (22.09.2020) ## v7.6.0 (22.09.2020)
### New features ### New features
@@ -111,7 +125,7 @@
- Add 10px and 8ox built in fonts - Add 10px and 8ox built in fonts
### Bugfixes ### Bugfixes
- Fix unexpeted DEFOCUS on lv_page when clicking to bg after the scrollable - 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. - 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. - Adjust button matrix button width to include padding when spanning multiple units.
- Add rounding to btnmatrix line height calculation - Add rounding to btnmatrix line height calculation
@@ -126,10 +140,10 @@ The main new features of v7.4 are run-time font loading, style caching and arc k
### New features ### New features
- Add `lv_font_load()` function - Loads a `lv_font_t` object from a binary font file - 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 `lv_font_free()` function - Frees the memory allocated by the `lv_font_load()` function
- Add style caching to reduce acces time of properties with default value - Add style caching to reduce access time of properties with default value
- arc: add set value by click feature - arc: add set value by click feature
- arc: add `LV_ARC_PART_KNOB` similarly to slider - arc: add `LV_ARC_PART_KNOB` similarly to slider
- send gestures even if the the obejct was dragged. User can check dragging with `lv_indev_is_dragging(lv_indev_act())` in the event function. - 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 ### Bugfixes
- Fix color bleeding on border drawing - Fix color bleeding on border drawing
@@ -177,7 +191,6 @@ The main new features of v7.4 are run-time font loading, style caching and arc k
- gauge: fix image needle drawing - gauge: fix image needle drawing
- fix using freed memory in _lv_style_list_remove_style - fix using freed memory in _lv_style_list_remove_style
## v7.2.0 (21.07.2020) ## v7.2.0 (21.07.2020)
### New features ### New features
@@ -214,7 +227,7 @@ The main new features of v7.4 are run-time font loading, style caching and arc k
- Add lv_btnmatrix_set/get_align capability - Add lv_btnmatrix_set/get_align capability
- DMA2D: Remove dependency on ST CubeMX HAL - DMA2D: Remove dependency on ST CubeMX HAL
- Added `max_used` propriety to `lv_mem_monitor_t` struct - Added `max_used` propriety to `lv_mem_monitor_t` struct
- In `lv_init` test if the the strings are UTF-8 encoded. - In `lv_init` test if the strings are UTF-8 encoded.
- Add `user_data` to themes - 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 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_get_state(const lv_obj_t * cb) to extend the checkbox functionality.
@@ -268,7 +281,7 @@ The main new features of v7.4 are run-time font loading, style caching and arc k
- Remove memcpy from `lv_ll` (caused issues with some optimization settings) - Remove memcpy from `lv_ll` (caused issues with some optimization settings)
- `lv_chart` fix X tick drawing - `lv_chart` fix X tick drawing
- Fix vertical dashed line drawing - Fix vertical dashed line drawing
- Some additonal minor fixes and formattings - Some additional minor fixes and formattings
## v7.0.0 (18.05.2020) ## v7.0.0 (18.05.2020)
@@ -281,7 +294,6 @@ The name of the project is changed to LVGL and the new website is on https://lvg
LVGL remains free under the same conditions (MIT license) and a company is created to manage LVGL and offer services. LVGL remains free under the same conditions (MIT license) and a company is created to manage LVGL and offer services.
### New drawing system ### New drawing system
Complete rework of LVGL's draw engine to use "masks" for more advanced and higher quality graphical effects. Complete rework of LVGL's draw engine to use "masks" for more advanced and higher quality graphical effects.
A possible use-case of this system is to remove the overflowing content from the rounded edges. A possible use-case of this system is to remove the overflowing content from the rounded edges.
@@ -295,7 +307,6 @@ The API in this regard remained the same but some new functions were added:
- `lv_img_set_angle`: set image object's angle without using canvas - `lv_img_set_angle`: set image object's angle without using canvas
- `lv_img_set_pivot`: set the pivot point of rotation - `lv_img_set_pivot`: set the pivot point of rotation
The new drawing engine brought new drawing features too. They are highlighted in the "style" section. The new drawing engine brought new drawing features too. They are highlighted in the "style" section.
### New style system ### New style system
+27
View File
@@ -32,6 +32,33 @@ if (CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM)
target_compile_definitions(${COMPONENT_LIB} PUBLIC "-DLV_ATTRIBUTE_FAST_MEM=IRAM_ATTR") target_compile_definitions(${COMPONENT_LIB} PUBLIC "-DLV_ATTRIBUTE_FAST_MEM=IRAM_ATTR")
endif() endif()
elseif(ZEPHYR_BASE)
if(CONFIG_LVGL)
zephyr_include_directories(${ZEPHYR_BASE}/lib/gui/lvgl)
target_include_directories(lvgl INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})
zephyr_compile_definitions(LV_CONF_KCONFIG_EXTERNAL_INCLUDE=<autoconf.h>)
zephyr_compile_definitions_ifdef(CONFIG_LV_MEM_CUSTOM
LV_MEM_CUSTOM_ALLOC=${CONFIG_LV_MEM_CUSTOM_ALLOC}
)
zephyr_compile_definitions_ifdef(CONFIG_LV_MEM_CUSTOM
LV_MEM_CUSTOM_FREE=${CONFIG_LV_MEM_CUSTOM_FREE}
)
zephyr_compile_definitions_ifdef(CONFIG_LV_TICK_CUSTOM
LV_TICK_CUSTOM_SYS_TIME_EXPR=${CONFIG_LV_TICK_CUSTOM_SYS_TIME_EXPR}
)
zephyr_library()
file(GLOB_RECURSE SOURCES src/*.c)
zephyr_library_sources(${SOURCES})
endif() # CONFIG_LVGL
else() else()
message(FATAL_ERROR "Unknown platform.") message(FATAL_ERROR "Unknown platform.")
endif() endif()
+46 -19
View File
@@ -50,9 +50,11 @@ menu "LVGL configuration"
config LV_COLOR_16_SWAP config LV_COLOR_16_SWAP
bool "Swap the 2 bytes of RGB565 color. Useful if the display has a 8 bit interface (e.g. SPI)." bool "Swap the 2 bytes of RGB565 color. Useful if the display has a 8 bit interface (e.g. SPI)."
depends on LV_COLOR_DEPTH_16
config LV_COLOR_SCREEN_TRANSP config LV_COLOR_SCREEN_TRANSP
bool "Enable screen transparency." bool "Enable screen transparency."
depends on LV_COLOR_DEPTH_32
help help
Useful for OSD or other overlapping GUIs. Useful for OSD or other overlapping GUIs.
Requires `LV_COLOR_DEPTH = 32` colors and the screen's style Requires `LV_COLOR_DEPTH = 32` colors and the screen's style
@@ -106,31 +108,31 @@ menu "LVGL configuration"
menu "Memory manager settings" menu "Memory manager settings"
config LV_MEM_CUSTOM config LV_MEM_CUSTOM
bool bool
prompt "If true use custom malloc/free, otherwise use the built-in `lv_mem_alloc` and `lv_mem_free`" prompt "If true use custom malloc/free, otherwise use the built-in `lv_mem_alloc` and `lv_mem_free`"
config LV_MEM_CUSTOM_INCLUDE config LV_MEM_CUSTOM_INCLUDE
string string
prompt "Header to include for the custom memory function" prompt "Header to include for the custom memory function"
default stdlib.h default "stdlib.h"
depends on LV_MEM_CUSTOM depends on LV_MEM_CUSTOM
config LV_MEM_CUSTOM_ALLOC config LV_MEM_CUSTOM_ALLOC
string string
prompt "Wrapper to malloc" prompt "Wrapper to malloc"
default malloc default "malloc"
depends on LV_MEM_CUSTOM depends on LV_MEM_CUSTOM
config LV_MEM_CUSTOM_FREE config LV_MEM_CUSTOM_FREE
string string
prompt "Wrapper to free" prompt "Wrapper to free"
default free default "free"
depends on LV_MEM_CUSTOM depends on LV_MEM_CUSTOM
config LV_MEM_SIZE_BYTES config LV_MEM_SIZE_KILOBYTES
int int
prompt "Size of the memory used by `lv_mem_alloc` in kilobytes (>= 2kB)" prompt "Size of the memory used by `lv_mem_alloc` in kilobytes (>= 2kB)"
range 2 128 range 2 128
default 32 default 32
depends on !LV_MEM_CUSTOM depends on !LV_MEM_CUSTOM
@@ -208,6 +210,7 @@ menu "LVGL configuration"
bool "Enable STM32 DMA2D." bool "Enable STM32 DMA2D."
config LV_GPU_DMA2D_CMSIS_INCLUDE config LV_GPU_DMA2D_CMSIS_INCLUDE
string "include path of CMSIS header of target processor" string "include path of CMSIS header of target processor"
depends on LV_USE_GPU_STM32_DMA2D
default "" default ""
help help
e.g. "stm32f769xx.h" or "stm32f429xx.h" e.g. "stm32f769xx.h" or "stm32f429xx.h"
@@ -215,6 +218,7 @@ menu "LVGL configuration"
bool "Use PXP for CPU off-load on NXP RTxxx platforms." bool "Use PXP for CPU off-load on NXP RTxxx platforms."
config LV_USE_GPU_NXP_PXP_AUTO_INIT config LV_USE_GPU_NXP_PXP_AUTO_INIT
bool "Call lv_gpu_nxp_pxp_init() automatically or manually." bool "Call lv_gpu_nxp_pxp_init() automatically or manually."
depends on LV_USE_GPU_NXP_PXP
help help
1: Add default bare metal and FreeRTOS interrupt handling 1: Add default bare metal and FreeRTOS interrupt handling
routines for PXP (lv_gpu_nxp_pxp_osa.c) and call routines for PXP (lv_gpu_nxp_pxp_osa.c) and call
@@ -254,7 +258,7 @@ menu "LVGL configuration"
menu "Image decoder and cache" menu "Image decoder and cache"
config LV_IMG_CF_INDEXED config LV_IMG_CF_INDEXED
bool "Enable indexed (pallete) images." bool "Enable indexed (palette) images."
default y if !LV_CONF_MINIMAL default y if !LV_CONF_MINIMAL
config LV_IMG_CF_ALPHA config LV_IMG_CF_ALPHA
bool "Enable alpha indexed images." bool "Enable alpha indexed images."
@@ -286,13 +290,13 @@ menu "LVGL configuration"
config LV_TICK_CUSTOM_INCLUDE config LV_TICK_CUSTOM_INCLUDE
string string
prompt "Header for the system time function" prompt "Header for the system time function"
default Arduino.h default "Arduino.h"
depends on LV_TICK_CUSTOM depends on LV_TICK_CUSTOM
config LV_TICK_CUSTOM_SYS_TIME_EXPR config LV_TICK_CUSTOM_SYS_TIME_EXPR
string string
prompt "Expression evaluating to current system time in ms" prompt "Expression evaluating to current system time in ms"
default "(millis())" default "millis()"
depends on LV_TICK_CUSTOM depends on LV_TICK_CUSTOM
endmenu endmenu
@@ -372,8 +376,12 @@ menu "LVGL configuration"
but with > 10,000 characters if you see issues probably you but with > 10,000 characters if you see issues probably you
need to enable it. need to enable it.
config LV_USE_FONT_SUBPX
bool "Enable subpixel rendering."
config LV_FONT_SUBPX_BGR config LV_FONT_SUBPX_BGR
bool "Use BGR instead RGB for sub-pixel rendering." bool "Use BGR instead RGB for sub-pixel rendering."
depends on LV_USE_FONT_SUBPX
help help
Set the pixel order of the display. Set the pixel order of the display.
Important only if "subpx fonts" are used. Important only if "subpx fonts" are used.
@@ -797,7 +805,7 @@ menu "LVGL configuration"
endmenu endmenu
menu "Theme usage" menu "Theme usage"
menu "Enable theme usage, always enable at least one theme" menu "Enable theme usage, always enable at least one theme"
config LV_THEME_EMPTY config LV_THEME_EMPTY
bool "Empty: No theme, you can apply your styles as you need." bool "Empty: No theme, you can apply your styles as you need."
default y if LV_CONF_MINIMAL default y if LV_CONF_MINIMAL
@@ -808,7 +816,7 @@ menu "LVGL configuration"
default y if !LV_CONF_MINIMAL default y if !LV_CONF_MINIMAL
config LV_THEME_MONO config LV_THEME_MONO
bool "Mono: Mono-color theme for monochrome displays" bool "Mono: Mono-color theme for monochrome displays"
endmenu endmenu
choice LV_THEME_DEFAULT_INIT choice LV_THEME_DEFAULT_INIT
prompt "Select theme default init" prompt "Select theme default init"
@@ -857,10 +865,8 @@ menu "LVGL configuration"
config LV_THEME_DEFAULT_FLAG_LIGHT config LV_THEME_DEFAULT_FLAG_LIGHT
bool "Light theme" bool "Light theme"
depends on LV_THEME_MATERIAL
config LV_THEME_DEFAULT_FLAG_DARK config LV_THEME_DEFAULT_FLAG_DARK
bool "Dark theme" bool "Dark theme"
depends on LV_THEME_MATERIAL
endchoice endchoice
endmenu endmenu
@@ -893,16 +899,16 @@ menu "LVGL configuration"
config LV_TXT_LINE_BREAK_LONG_PRE_MIN_LEN config LV_TXT_LINE_BREAK_LONG_PRE_MIN_LEN
int "Min num chars before break" int "Min num chars before break"
default 3 default 3
depends on LV_TXT_LINE_BREAK_LONG_LEN > 0
help help
Minimum number of characters in a long word to put on a line before a break. Minimum number of characters in a long word to put on a line before a break.
Depends on LV_TXT_LINE_BREAK_LONG_LEN
config LV_TXT_LINE_BREAK_LONG_POST_MIN_LEN config LV_TXT_LINE_BREAK_LONG_POST_MIN_LEN
int "Min num chars after break" int "Min num chars after break"
default 3 default 3
depends on LV_TXT_LINE_BREAK_LONG_LEN > 0
help help
Minimum number of characters in a long word to put on a line after a break. Minimum number of characters in a long word to put on a line after a break.
Depends on LV_TXT_LINE_BREAK_LONG_LEN
config LV_TXT_COLOR_CMD config LV_TXT_COLOR_CMD
string "The control character to use for signalling text recoloring" string "The control character to use for signalling text recoloring"
@@ -976,6 +982,7 @@ menu "LVGL configuration"
default y if !LV_CONF_MINIMAL default y if !LV_CONF_MINIMAL
config LV_CALENDAR_WEEK_STARTS_MONDAY config LV_CALENDAR_WEEK_STARTS_MONDAY
bool "Calendar week starts monday." bool "Calendar week starts monday."
depends on LV_USE_CALENDAR
config LV_USE_CANVAS config LV_USE_CANVAS
bool "Canvas. Dependencies: lv_img." bool "Canvas. Dependencies: lv_img."
select LV_USE_IMG select LV_USE_IMG
@@ -1005,7 +1012,7 @@ menu "LVGL configuration"
default y if !LV_CONF_MINIMAL default y if !LV_CONF_MINIMAL
config LV_DROPDOWN_DEF_ANIM_TIME config LV_DROPDOWN_DEF_ANIM_TIME
int "Drop down animation time. 0: no animation." int "Drop down animation time. 0: no animation."
depends on LV_USE_DROPBOX depends on LV_USE_DROPDOWN
default 200 default 200
config LV_USE_GAUGE config LV_USE_GAUGE
bool "Gauge. Dependencies: lv_bar, lv_linemeter." bool "Gauge. Dependencies: lv_bar, lv_linemeter."
@@ -1033,13 +1040,17 @@ menu "LVGL configuration"
config LV_LABEL_DEF_SCROLL_SPEED config LV_LABEL_DEF_SCROLL_SPEED
int "Hor. or ver. scroll speed [px/sec] in LV_LABEL_LONG_ROLL/ROLL_CIRC mode." int "Hor. or ver. scroll speed [px/sec] in LV_LABEL_LONG_ROLL/ROLL_CIRC mode."
default 25 default 25
depends on LV_USE_LABEL
config LV_LABEL_WAIT_CHAR_COUNT config LV_LABEL_WAIT_CHAR_COUNT
int "Waiting period at beginning/end of animation cycle." int "Waiting period at beginning/end of animation cycle."
default 3 default 3
depends on LV_USE_LABEL
config LV_LABEL_TEXT_SEL config LV_LABEL_TEXT_SEL
bool "Enable selecting text of the label." bool "Enable selecting text of the label."
depends on LV_USE_LABEL
config LV_LABEL_LONG_TXT_HINT config LV_LABEL_LONG_TXT_HINT
bool "Store extra some info in labels (12 bytes) to speed up drawing of very long texts." bool "Store extra some info in labels (12 bytes) to speed up drawing of very long texts."
depends on LV_USE_LABEL
config LV_USE_LED config LV_USE_LED
bool "LED." bool "LED."
default y if !LV_CONF_MINIMAL default y if !LV_CONF_MINIMAL
@@ -1047,10 +1058,12 @@ menu "LVGL configuration"
int "LED minimal brightness." int "LED minimal brightness."
range 0 255 range 0 255
default 120 default 120
depends on LV_USE_LED
config LV_LED_BRIGHT_MAX config LV_LED_BRIGHT_MAX
int "LED maximal brightness." int "LED maximal brightness."
range 0 255 range 0 255
default 255 default 255
depends on LV_USE_LED
config LV_USE_LINE config LV_USE_LINE
bool "Line." bool "Line."
default y if !LV_CONF_MINIMAL default y if !LV_CONF_MINIMAL
@@ -1064,12 +1077,14 @@ menu "LVGL configuration"
config LV_LIST_DEF_ANIM_TIME config LV_LIST_DEF_ANIM_TIME
int "List default animation time of focusing to a list element [ms]. 0: no animation." int "List default animation time of focusing to a list element [ms]. 0: no animation."
default 100 default 100
depends on LV_USE_LIST
config LV_USE_LINEMETER config LV_USE_LINEMETER
bool "Line meter." bool "Line meter."
default y if !LV_CONF_MINIMAL default y if !LV_CONF_MINIMAL
choice choice
prompt "Draw line more precisely at cost of performance." prompt "Draw line more precisely at cost of performance."
default LV_LINEMETER_PRECISE_NO_EXTRA_PRECISION default LV_LINEMETER_PRECISE_NO_EXTRA_PRECISION
depends on LV_USE_LINEMETER
config LV_LINEMETER_PRECISE_NO_EXTRA_PRECISION config LV_LINEMETER_PRECISE_NO_EXTRA_PRECISION
bool "0: No extra precision." bool "0: No extra precision."
config LV_LINEMETER_PRECISE_SOME_EXTRA_PRECISION config LV_LINEMETER_PRECISE_SOME_EXTRA_PRECISION
@@ -1093,6 +1108,7 @@ menu "LVGL configuration"
config LV_PAGE_DEF_ANIM_TIME config LV_PAGE_DEF_ANIM_TIME
int "Focus default animation time [ms]. 0: No animation." int "Focus default animation time [ms]. 0: No animation."
default 100 default 100
depends on LV_USE_PAGE
config LV_USE_SPINNER config LV_USE_SPINNER
bool "Spinner. Dependencies: lv_arc, lv_anim." bool "Spinner. Dependencies: lv_arc, lv_anim."
select LV_USE_ARC select LV_USE_ARC
@@ -1101,12 +1117,15 @@ menu "LVGL configuration"
config LV_SPINNER_DEF_ARC_LENGTH config LV_SPINNER_DEF_ARC_LENGTH
int "Spinner def. arc length [deg]." int "Spinner def. arc length [deg]."
default 60 default 60
depends on LV_USE_SPINNER
config LV_SPINNER_DEF_SPIN_TIME config LV_SPINNER_DEF_SPIN_TIME
int "Spinner def. spin time [ms]." int "Spinner def. spin time [ms]."
default 1000 default 1000
depends on LV_USE_SPINNER
choice choice
prompt "Type of spinner (animation type)." prompt "Type of spinner (animation type)."
default LV_SPINNER_TYPE_SPINNING_ARC default LV_SPINNER_TYPE_SPINNING_ARC
depends on LV_USE_SPINNER
config LV_SPINNER_TYPE_SPINNING_ARC config LV_SPINNER_TYPE_SPINNING_ARC
bool "0: Spinner type spinning arc." bool "0: Spinner type spinning arc."
config LV_SPINNER_TYPE_FILLSPIN_ARC config LV_SPINNER_TYPE_FILLSPIN_ARC
@@ -1121,9 +1140,11 @@ menu "LVGL configuration"
config LV_ROLLER_DEF_ANIM_TIME config LV_ROLLER_DEF_ANIM_TIME
int "Focus animation time [ms]. 0: no animation." int "Focus animation time [ms]. 0: no animation."
default 200 default 200
depends on LV_USE_ROLLER
config LV_ROLLER_INF_PAGES config LV_ROLLER_INF_PAGES
int "Number of extra 'pages' when the controller is infinite." int "Number of extra 'pages' when the controller is infinite."
default 7 default 7
depends on LV_USE_ROLLER
config LV_USE_SLIDER config LV_USE_SLIDER
bool "Slider. Dependencies: lv_bar." bool "Slider. Dependencies: lv_bar."
select LV_USE_BAR select LV_USE_BAR
@@ -1144,9 +1165,11 @@ menu "LVGL configuration"
config LV_TEXTAREA_DEF_CURSOR_BLINK_TIME config LV_TEXTAREA_DEF_CURSOR_BLINK_TIME
int "Text area def. cursor blink time [ms]." int "Text area def. cursor blink time [ms]."
default 400 default 400
depends on LV_USE_TEXTAREA
config LV_TEXTAREA_DEF_PWN_SHOW_TIME config LV_TEXTAREA_DEF_PWN_SHOW_TIME
int "Text area def. pwn show time [ms]." int "Text area def. pwn show time [ms]."
default 1500 default 1500
depends on LV_USE_TEXTAREA
config LV_USE_TABLE config LV_USE_TABLE
bool "Table. Dependencies: lv_label." bool "Table. Dependencies: lv_label."
select LV_USE_LABEL select LV_USE_LABEL
@@ -1154,9 +1177,11 @@ menu "LVGL configuration"
config LV_TABLE_COL_MAX config LV_TABLE_COL_MAX
int "Table col max." int "Table col max."
default 12 default 12
depends on LV_USE_TABLE
config LV_TABLE_CELL_STYLE_CNT config LV_TABLE_CELL_STYLE_CNT
int "Table cell style count." int "Table cell style count."
default 4 default 4
depends on LV_USE_TABLE
config LV_USE_TABVIEW config LV_USE_TABVIEW
bool "Tab. Dependencies: lv_page, lv_btnm." bool "Tab. Dependencies: lv_page, lv_btnm."
select LV_USE_PAGE select LV_USE_PAGE
@@ -1165,6 +1190,7 @@ menu "LVGL configuration"
config LV_TABVIEW_DEF_ANIM_TIME config LV_TABVIEW_DEF_ANIM_TIME
int "Time of slide animation [ms]. 0: No animation." int "Time of slide animation [ms]. 0: No animation."
default 300 default 300
depends on LV_USE_TABVIEW
config LV_USE_TILEVIEW config LV_USE_TILEVIEW
bool "Tileview. Dependencies: lv_page." bool "Tileview. Dependencies: lv_page."
select LV_USE_PAGE select LV_USE_PAGE
@@ -1172,6 +1198,7 @@ menu "LVGL configuration"
config LV_TILEVIEW_DEF_ANIM_TIME config LV_TILEVIEW_DEF_ANIM_TIME
int "Time of slide animation [ms]. 0: No animation." int "Time of slide animation [ms]. 0: No animation."
default 300 default 300
depends on LV_USE_TILEVIEW
config LV_USE_WIN config LV_USE_WIN
bool "Window. Dependencies: lv_cont, lv_btn, lv_label, lv_img, lv_page." bool "Window. Dependencies: lv_cont, lv_btn, lv_label, lv_img, lv_page."
select LV_USE_CONT select LV_USE_CONT
+11 -14
View File
@@ -27,40 +27,37 @@ Planned to November/December 2020
- Simplified File system interface ([feat/new_fs_api](https://github.com/lvgl/lvgl/tree/feat/new-fs-api) branch) to make porting easier - Simplified File system interface ([feat/new_fs_api](https://github.com/lvgl/lvgl/tree/feat/new-fs-api) branch) to make porting easier
- Work in progress - Work in progress
- Remove the align parameter from `lv_canvas_draw_text` - Remove the align parameter from `lv_canvas_draw_text`
- Remove the copy paramter from create functions - Make the copy parameter obsolate in create functions
- Style selectors and style-based states See [#1832](https://github.com/lvgl/lvgl/issues/1832) - Optimize and simplifie styles [#1832](https://github.com/lvgl/lvgl/issues/1832)
- Add Object Orianted system [#1919](https://github.com/lvgl/lvgl/issues/1919) - Use a more generic inheritenace [#1919](https://github.com/lvgl/lvgl/issues/1919)
## v8.1
- Add radio button widget
## v8.x ## v8.x
- Add radio button widget
- Unit testing (gtest?). See [#1658](https://github.com/lvgl/lvgl/issues/1658) - Unit testing (gtest?). See [#1658](https://github.com/lvgl/lvgl/issues/1658)
- Benchmarking (gem5?). See [#1660](https://github.com/lvgl/lvgl/issues/1660) - Benchmarking (gem5?). See [#1660](https://github.com/lvgl/lvgl/issues/1660)
- chart: pre-delete `X` pint after the lastly set
- chart: autoscroll to the right
## v9 ## v9
- Simplify `group`s. Discussion is [here](https://forum.lvgl.io/t/lv-group-tabindex/2927/3). - Simplify `group`s. Discussion is [here](https://forum.lvgl.io/t/lv-group-tabindex/2927/3).
- Consider direct binary font format support - Consider direct binary font format support
- Optimize line and cirle drawing and masking - Optimize line and circle drawing and masking
- Reconsider color format management for run time color format setting, and custom color format usage. (Also [RGB888](https://github.com/lvgl/lvgl/issues/1722)) - Reconsider color format management for run time color format setting, and custom color format usage. (Also [RGB888](https://github.com/lvgl/lvgl/issues/1722))
- 9-patch support for `lv_imgbtn`. - 9-patch support for `lv_imgbtn`.
- Handle stride. See [#1858](https://github.com/lvgl/lvgl/issues/1858) - Handle stride. See [#1858](https://github.com/lvgl/lvgl/issues/1858)
- Make gradients more versatile - Make gradients more versatile
- Make image transformations more versatile - Make image transformations more versatile
- Allow snapshoting object to tranfrom them as images - Allow snapshoting object to tranfrom them to images
## v10
- Remove property level states
## Ideas ## Ideas
- Use [generate-changelog](https://github.com/lob/generate-changelog) to automatically generate changelog
- lv_mem_alloc_aligned(size, align) - lv_mem_alloc_aligned(size, align)
- Text node. See [#1701](https://github.com/lvgl/lvgl/issues/1701#issuecomment-699479408) - Text node. See [#1701](https://github.com/lvgl/lvgl/issues/1701#issuecomment-699479408)
- CPP binding. See [Forum](https://forum.lvgl.io/t/is-it-possible-to-officially-support-optional-cpp-api/2736) - CPP binding. See [Forum](https://forum.lvgl.io/t/is-it-possible-to-officially-support-optional-cpp-api/2736)
- Optmize font decompression - Optimize font decompression
- Switch to RGBA colors in styles - Switch to RGBA colors in styles
- Need coverage report for tests - Need coverage report for tests
- Need static analize (via coverity.io or somehing else) - Need static analyze (via coverity.io or somehing else)
- Support dot_begin and dot_middle long modes for labels - Support dot_begin and dot_middle long modes for labels
- Add new label alignment modes. [#1656](https://github.com/lvgl/lvgl/issues/1656) - Add new label alignment modes. [#1656](https://github.com/lvgl/lvgl/issues/1656)
- Support larger images: [#1892](https://github.com/lvgl/lvgl/issues/1892) - Support larger images: [#1892](https://github.com/lvgl/lvgl/issues/1892)
+1 -3
View File
@@ -55,7 +55,7 @@ void lv_port_disp_init(void)
*----------------------------*/ *----------------------------*/
/* LVGL requires a buffer where it internally draws the widgets. /* LVGL requires a buffer where it internally draws the widgets.
* Later this buffer will passed your display drivers `flush_cb` to copy its content to your dispay. * Later this buffer will passed your display drivers `flush_cb` to copy its content to your display.
* The buffer has to be greater than 1 display row * The buffer has to be greater than 1 display row
* *
* There are three buffering configurations: * There are three buffering configurations:
@@ -91,7 +91,6 @@ void lv_port_disp_init(void)
static lv_color_t draw_buf_3_1[LV_HOR_RES_MAX * LV_VER_RES_MAX]; /*An other screen sized buffer*/ static lv_color_t draw_buf_3_1[LV_HOR_RES_MAX * LV_VER_RES_MAX]; /*An other screen sized buffer*/
lv_disp_buf_init(&draw_buf_dsc_3, draw_buf_3_1, draw_buf_3_2, LV_HOR_RES_MAX * LV_VER_RES_MAX); /*Initialize the display buffer*/ lv_disp_buf_init(&draw_buf_dsc_3, draw_buf_3_1, draw_buf_3_2, LV_HOR_RES_MAX * LV_VER_RES_MAX); /*Initialize the display buffer*/
/*----------------------------------- /*-----------------------------------
* Register the display in LVGL * Register the display in LVGL
*----------------------------------*/ *----------------------------------*/
@@ -157,7 +156,6 @@ static void disp_flush(lv_disp_drv_t * disp_drv, const lv_area_t * area, lv_colo
lv_disp_flush_ready(disp_drv); lv_disp_flush_ready(disp_drv);
} }
/*OPTIONAL: GPU INTERFACE*/ /*OPTIONAL: GPU INTERFACE*/
#if LV_USE_GPU #if LV_USE_GPU
-1
View File
@@ -34,7 +34,6 @@ extern "C" {
* MACROS * MACROS
**********************/ **********************/
#ifdef __cplusplus #ifdef __cplusplus
} /* extern "C" */ } /* extern "C" */
#endif #endif
+3 -5
View File
@@ -36,7 +36,6 @@ typedef struct {
uint32_t dummy2; uint32_t dummy2;
}dir_t; }dir_t;
/********************** /**********************
* STATIC PROTOTYPES * STATIC PROTOTYPES
**********************/ **********************/
@@ -81,7 +80,7 @@ void lv_port_fs_init(void)
fs_init(); fs_init();
/*--------------------------------------------------- /*---------------------------------------------------
* Register the file system interface in LVGL * Register the file system interface in LVGL
*--------------------------------------------------*/ *--------------------------------------------------*/
/* Add a simple drive to open images */ /* Add a simple drive to open images */
@@ -118,7 +117,7 @@ void lv_port_fs_init(void)
/* Initialize your Storage device and File system. */ /* Initialize your Storage device and File system. */
static void fs_init(void) static void fs_init(void)
{ {
/*E.g. for FatFS initalize the SD card and FatFS itself*/ /*E.g. for FatFS initialize the SD card and FatFS itself*/
/*You code here*/ /*You code here*/
} }
@@ -157,7 +156,6 @@ static lv_fs_res_t fs_open (lv_fs_drv_t * drv, void * file_p, const char * path,
return res; return res;
} }
/** /**
* Close an opened file * Close an opened file
* @param drv pointer to a driver where this function belongs * @param drv pointer to a driver where this function belongs
@@ -264,7 +262,7 @@ static lv_fs_res_t fs_tell (lv_fs_drv_t * drv, void * file_p, uint32_t * pos_p)
* Delete a file * Delete a file
* @param drv pointer to a driver where this function belongs * @param drv pointer to a driver where this function belongs
* @param path path of the file to delete * @param path path of the file to delete
* @return LV_FS_RES_OK or any error from lv_fs_res_t enum * @return LV_FS_RES_OK or any error from lv_fs_res_t enum
*/ */
static lv_fs_res_t fs_remove (lv_fs_drv_t * drv, const char *path) static lv_fs_res_t fs_remove (lv_fs_drv_t * drv, const char *path)
{ {
-1
View File
@@ -34,7 +34,6 @@ extern "C" {
* MACROS * MACROS
**********************/ **********************/
#ifdef __cplusplus #ifdef __cplusplus
} /* extern "C" */ } /* extern "C" */
#endif #endif
@@ -79,7 +79,6 @@ void lv_port_indev_init(void)
* You should shape them according to your hardware * You should shape them according to your hardware
*/ */
lv_indev_drv_t indev_drv; lv_indev_drv_t indev_drv;
/*------------------ /*------------------
@@ -174,8 +173,6 @@ void lv_port_indev_init(void)
* STATIC FUNCTIONS * STATIC FUNCTIONS
**********************/ **********************/
/*------------------ /*------------------
* Touchpad * Touchpad
* -----------------*/ * -----------------*/
@@ -225,7 +222,6 @@ static void touchpad_get_xy(lv_coord_t * x, lv_coord_t * y)
(*y) = 0; (*y) = 0;
} }
/*------------------ /*------------------
* Mouse * Mouse
* -----------------*/ * -----------------*/
@@ -361,7 +357,6 @@ static void encoder_handler(void)
encoder_state = LV_INDEV_STATE_REL; encoder_state = LV_INDEV_STATE_REL;
} }
/*------------------ /*------------------
* Button * Button
* -----------------*/ * -----------------*/
@@ -35,7 +35,6 @@ extern "C" {
* MACROS * MACROS
**********************/ **********************/
#ifdef __cplusplus #ifdef __cplusplus
} /* extern "C" */ } /* extern "C" */
#endif #endif
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "lvgl", "name": "lvgl",
"version": "8.0.0", "version": "8.0.0",
"keywords": "graphics, gui, embedded, tft, lvgl", "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.", "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": { "repository": {
+20 -5
View File
@@ -1,10 +1,6 @@
/** /**
* @file lv_conf.h * @file lv_conf.h
<<<<<<< HEAD
* Configuration file for v8.0.0-dev * Configuration file for v8.0.0-dev
=======
* Configuration file for v7.8.1-dev
>>>>>>> master
*/ */
/* /*
@@ -138,7 +134,6 @@ typedef int16_t lv_coord_t;
* Time between `LV_EVENT_LONG_PRESSED_REPEAT */ * Time between `LV_EVENT_LONG_PRESSED_REPEAT */
#define LV_INDEV_DEF_LONG_PRESS_REP_TIME 100 #define LV_INDEV_DEF_LONG_PRESS_REP_TIME 100
/* Gesture threshold in pixels */ /* Gesture threshold in pixels */
#define LV_INDEV_DEF_GESTURE_LIMIT 50 #define LV_INDEV_DEF_GESTURE_LIMIT 50
@@ -690,6 +685,26 @@ typedef void * lv_obj_user_data_t;
# define LV_TABLE_CELL_STYLE_CNT 4 # define LV_TABLE_CELL_STYLE_CNT 4
#endif #endif
<<<<<<< HEAD
=======
/*Tab (dependencies: lv_page, lv_btnm)*/
#define LV_USE_TABVIEW 1
# if LV_USE_TABVIEW != 0
/*Time of slide animation [ms] (0: no animation)*/
# define LV_TABVIEW_DEF_ANIM_TIME 300
#endif
/*Tileview (dependencies: lv_page) */
#define LV_USE_TILEVIEW 1
#if LV_USE_TILEVIEW
/*Time of slide animation [ms] (0: no animation)*/
# define LV_TILEVIEW_DEF_ANIM_TIME 300
#endif
/*Window (dependencies: lv_cont, lv_btn, lv_label, lv_img, lv_page)*/
#define LV_USE_WIN 1
>>>>>>> master
/*================== /*==================
* Non-user section * Non-user section
*==================*/ *==================*/
+23 -1
View File
@@ -10,7 +10,6 @@
extern "C" { extern "C" {
#endif #endif
/*************************** /***************************
* CURRENT VERSION OF LVGL * CURRENT VERSION OF LVGL
***************************/ ***************************/
@@ -106,6 +105,29 @@ extern "C" {
* */ * */
#define LV_VERSION_CHECK(x,y,z) (x == LVGL_VERSION_MAJOR && (y < LVGL_VERSION_MINOR || (y == LVGL_VERSION_MINOR && z <= LVGL_VERSION_PATCH))) #define LV_VERSION_CHECK(x,y,z) (x == LVGL_VERSION_MAJOR && (y < LVGL_VERSION_MINOR || (y == LVGL_VERSION_MINOR && z <= LVGL_VERSION_PATCH)))
/**
* Wrapper functions for VERSION macros
*/
static inline int lv_version_major()
{
return LVGL_VERSION_MAJOR;
}
static inline int lv_version_minor()
{
return LVGL_VERSION_MINOR;
}
static inline int lv_version_patch()
{
return LVGL_VERSION_PATCH;
}
static inline const char *lv_version_info()
{
return LVGL_VERSION_INFO;
}
#ifdef __cplusplus #ifdef __cplusplus
} }
-2
View File
@@ -6,5 +6,3 @@ include $(LVGL_DIR)/$(LVGL_DIR_NAME)/src/lv_misc/lv_misc.mk
include $(LVGL_DIR)/$(LVGL_DIR_NAME)/src/lv_themes/lv_themes.mk include $(LVGL_DIR)/$(LVGL_DIR_NAME)/src/lv_themes/lv_themes.mk
include $(LVGL_DIR)/$(LVGL_DIR_NAME)/src/lv_draw/lv_draw.mk include $(LVGL_DIR)/$(LVGL_DIR_NAME)/src/lv_draw/lv_draw.mk
include $(LVGL_DIR)/$(LVGL_DIR_NAME)/src/lv_gpu/lv_gpu.mk include $(LVGL_DIR)/$(LVGL_DIR_NAME)/src/lv_gpu/lv_gpu.mk
-2
View File
@@ -101,5 +101,3 @@ os.system('sed -i \'s|#include "lvgl/lvgl.h"|#include "../../lvgl.h"|\' lv_font_
print("\nGenerating 16 px Hebrew, Persian") print("\nGenerating 16 px Hebrew, Persian")
os.system("./built_in_font_gen.py --size 16 -o lv_font_dejavu_16_persian_hebrew.c --bpp 4 --font DejaVuSans.ttf -r 0x20-0x7f,0x5d0-0x5ea,0x600-0x6FF,0xFB50-0xFDFF,0xFE70-0xFEFF") os.system("./built_in_font_gen.py --size 16 -o lv_font_dejavu_16_persian_hebrew.c --bpp 4 --font DejaVuSans.ttf -r 0x20-0x7f,0x5d0-0x5ea,0x600-0x6FF,0xFB50-0xFDFF,0xFE70-0xFEFF")
os.system('sed -i \'s|#include "lvgl/lvgl.h"|#include "../../lvgl.h"|\' lv_font_dejavu_16_persian_hebrew.c') os.system('sed -i \'s|#include "lvgl/lvgl.h"|#include "../../lvgl.h"|\' lv_font_dejavu_16_persian_hebrew.c')
-1
View File
@@ -47,4 +47,3 @@
--exclude=../src/lv_font/lv_font_montserrat_28_compressed.c --exclude=../src/lv_font/lv_font_montserrat_28_compressed.c
--exclude=../src/lv_font/lv_font_simsun_16_cjk.c --exclude=../src/lv_font/lv_font_simsun_16_cjk.c
--exclude=../src/lv_font/lv_font_dejavu_16_persian_hebrew.c --exclude=../src/lv_font/lv_font_dejavu_16_persian_hebrew.c
-1
View File
@@ -1,2 +1 @@
cppcheck -j8 --template="{severity}\t{file}:{line}\t{id}: {message}" --enable=all ../src/ --output-file=cppcheck_res.txt --suppress=unusedFunction --suppress=preprocessorErrorDirective --force cppcheck -j8 --template="{severity}\t{file}:{line}\t{id}: {message}" --enable=all ../src/ --output-file=cppcheck_res.txt --suppress=unusedFunction --suppress=preprocessorErrorDirective --force
-1
View File
@@ -6,5 +6,4 @@
# | sudo tar -C /opt -xJ && \ # | sudo tar -C /opt -xJ && \
# sudoln -s "/opt/infer-linux64-v$VERSION/bin/infer" /usr/local/bin/infer # sudoln -s "/opt/infer-linux64-v$VERSION/bin/infer" /usr/local/bin/infer
infer run -- make -j8 infer run -- make -j8
+2 -6
View File
@@ -4,7 +4,6 @@
Generates a checker file for lv_conf.h from lv_conf_template.h define all the not defined values Generates a checker file for lv_conf.h from lv_conf_template.h define all the not defined values
''' '''
import sys import sys
import re import re
@@ -15,7 +14,6 @@ if sys.version_info < (3,6,0):
fin = open("../lv_conf_template.h", "r") fin = open("../lv_conf_template.h", "r")
fout = open("../src/lv_conf_internal.h", "w") fout = open("../src/lv_conf_internal.h", "w")
fout.write( fout.write(
'''/** '''/**
* GENERATED FILE, DO NOT EDIT IT! * GENERATED FILE, DO NOT EDIT IT!
@@ -93,14 +91,13 @@ for i in fin.read().splitlines():
if r: if r:
line = re.sub('\(.*?\)', '', r[1], 1) #remove parentheses from macros line = re.sub('\(.*?\)', '', r[1], 1) #remove parentheses from macros
dr = re.sub('.*# *define', '', i, 1) dr = re.sub('.*# *define', '', i, 1)
d = "# define " + dr d = "# define " + dr
fout.write( fout.write(
f'#ifndef {line}\n' f'#ifndef {line}\n'
f'# ifdef CONFIG_{line}\n' f'# ifdef CONFIG_{line.upper()}\n'
f'# define {line} CONFIG_{line}\n' f'# define {line} CONFIG_{line.upper()}\n'
f'# else\n' f'# else\n'
f'{d}\n' f'{d}\n'
f'# endif\n' f'# endif\n'
@@ -111,7 +108,6 @@ for i in fin.read().splitlines():
else: else:
fout.write(f'{i}\n') fout.write(f'{i}\n')
fout.write( fout.write(
''' '''
+1 -2
View File
@@ -14,7 +14,7 @@ def cmd(c, ask_on_err = True):
if r: if r:
print("### Error: " + str(r)) print("### Error: " + str(r))
if ask_on_err: if ask_on_err:
input("Press Enter to continue exectution...") input("Press Enter to continue execution...")
def define_set(fn, name, value): def define_set(fn, name, value):
print("In " + fn + " set " + name + " to " + value) print("In " + fn + " set " + name + " to " + value)
@@ -108,4 +108,3 @@ def update_version(ver):
define_set("./lvgl.h", "LVGL_VERSION_MINOR", str(ver[1])) define_set("./lvgl.h", "LVGL_VERSION_MINOR", str(ver[1]))
define_set("./lvgl.h", "LVGL_VERSION_PATCH", str(ver[2])) define_set("./lvgl.h", "LVGL_VERSION_PATCH", str(ver[2]))
define_set("./lvgl.h", "LVGL_VERSION_INFO", "\"" + ver[3] + "\"") define_set("./lvgl.h", "LVGL_VERSION_INFO", "\"" + ver[3] + "\"")
-2
View File
@@ -28,7 +28,6 @@ def docs_update_ver(ver, br):
os.chdir("../") os.chdir("../")
def merge_dev_to_master(): def merge_dev_to_master():
os.chdir("./lvgl") os.chdir("./lvgl")
com.cmd("git checkout master") com.cmd("git checkout master")
@@ -43,7 +42,6 @@ def merge_dev_to_master():
com.push("origin latest") com.push("origin latest")
os.chdir("../") os.chdir("../")
def make(mode): def make(mode):
if(mode == "bugfix"): if(mode == "bugfix"):
ver = com.get_lvgl_version("master") ver = com.get_lvgl_version("master")
+1 -1
View File
@@ -47,7 +47,7 @@ if __name__ == '__main__':
# if(len(sys.argv) != 2): # if(len(sys.argv) != 2):
# print("Missing argument. Usage ./release.py bugfix | minor | major") # print("Missing argument. Usage ./release.py bugfix | minor | major")
# print("Use minor by deafult") # print("Use minor by default")
# else: # else:
# dev_prepare = sys.argv[1] # dev_prepare = sys.argv[1]
+3 -5
View File
@@ -7,11 +7,10 @@ import re
import subprocess import subprocess
import com import com
def make(repo_path, auto_push = False): def make(repo_path, auto_push = False):
os.chdir("./" + repo_path) os.chdir("./" + repo_path)
com.cmd('git checkout master') com.cmd('git checkout master')
print("Upadte lvgl"); print("Update lvgl");
os.chdir("./lvgl") os.chdir("./lvgl")
com.cmd("git checkout master") com.cmd("git checkout master")
com.cmd("git pull origin --tags") com.cmd("git pull origin --tags")
@@ -37,13 +36,12 @@ def make(repo_path, auto_push = False):
(key, val) = line.rstrip().split('\t') (key, val) = line.rstrip().split('\t')
com.define_set("lv_conf.h", str(key), str(val)) com.define_set("lv_conf.h", str(key), str(val))
if os.path.exists("lv_examples"): if os.path.exists("lv_examples"):
print("Upadte lv_examples"); print("Update lv_examples");
com.cmd("cd lv_examples; git co " + release_br + "; git pull origin " + release_br) com.cmd("cd lv_examples; git co " + release_br + "; git pull origin " + release_br)
if os.path.exists("lv_drivers"): if os.path.exists("lv_drivers"):
print("upadte lv_drivers"); print("update lv_drivers");
com.cmd("cd lv_drivers " + release_br + "; git pull origin " + release_br) com.cmd("cd lv_drivers " + release_br + "; git pull origin " + release_br)
msg = 'Update to ' + ver_str msg = 'Update to ' + ver_str
+3 -3
View File
@@ -78,7 +78,6 @@ def lvgl_release(ver):
return release_note return release_note
def lv_examples_release(ver): def lv_examples_release(ver):
print("Release lv_examples") print("Release lv_examples")
@@ -88,13 +87,15 @@ def lv_examples_release(ver):
com.update_version(ver) com.update_version(ver)
com.cmd("sed -i -r 's/LV_VERSION_CHECK\([0-9]+, *[0-9]+, *[0-9]+\)/"+ "LV_VERSION_CHECK(" + str(ver[0]) + ", " + str(ver[1]) + ", " + str(ver[2]) + ")/' lv_examples.h") com.cmd("sed -i -r 's/LV_VERSION_CHECK\([0-9]+, *[0-9]+, *[0-9]+\)/"+ "LV_VERSION_CHECK\(" + str(ver[0]) + ", " + str(ver[1]) + ", " + str(ver[2]) + ")/' lv_examples.h")
com.cmd('git commit -am "Release ' + ver_str + '"') com.cmd('git commit -am "Release ' + ver_str + '"')
com.cmd("git tag -a " + ver_str + " -m 'Release " + ver_str + "' ") com.cmd("git tag -a " + ver_str + " -m 'Release " + ver_str + "' ")
com.push('origin master') com.push('origin master')
com.push('origin --tags') com.push('origin --tags')
update_release_branch(release_br)
os.chdir("../") os.chdir("../")
def lv_drivers_release(ver): def lv_drivers_release(ver):
@@ -160,7 +161,6 @@ def blog_release(ver, release_note):
os.chdir("../../") os.chdir("../../")
def make(): def make():
ver = com.get_lvgl_version("master") ver = com.get_lvgl_version("master")
release_note = lvgl_release(ver) release_note = lvgl_release(ver)
+5 -6
View File
@@ -349,7 +349,6 @@
# endif # endif
#endif #endif
/* Gesture threshold in pixels */ /* Gesture threshold in pixels */
#ifndef LV_INDEV_DEF_GESTURE_LIMIT #ifndef LV_INDEV_DEF_GESTURE_LIMIT
# ifdef CONFIG_LV_INDEV_DEF_GESTURE_LIMIT # ifdef CONFIG_LV_INDEV_DEF_GESTURE_LIMIT
@@ -602,7 +601,7 @@ e.g. "stm32f769xx.h" or "stm32f429xx.h" */
* (I.e. no new image decoder is added) * (I.e. no new image decoder is added)
* With complex image decoders (e.g. PNG or JPG) caching can save the continuous open/decode of images. * With complex image decoders (e.g. PNG or JPG) caching can save the continuous open/decode of images.
* However the opened images might consume additional RAM. * However the opened images might consume additional RAM.
* LV_IMG_CACHE_DEF_SIZE must be >= 1 */ * Set it to 0 to disable caching */
#ifndef LV_IMG_CACHE_DEF_SIZE #ifndef LV_IMG_CACHE_DEF_SIZE
# ifdef CONFIG_LV_IMG_CACHE_DEF_SIZE # ifdef CONFIG_LV_IMG_CACHE_DEF_SIZE
# define LV_IMG_CACHE_DEF_SIZE CONFIG_LV_IMG_CACHE_DEF_SIZE # define LV_IMG_CACHE_DEF_SIZE CONFIG_LV_IMG_CACHE_DEF_SIZE
@@ -1363,15 +1362,15 @@ e.g. "stm32f769xx.h" or "stm32f429xx.h" */
# endif # endif
#endif #endif
#ifndef lv_snprintf #ifndef lv_snprintf
# ifdef CONFIG_lv_snprintf # ifdef CONFIG_LV_SNPRINTF
# define lv_snprintf CONFIG_lv_snprintf # define lv_snprintf CONFIG_LV_SNPRINTF
# else # else
# define lv_snprintf snprintf # define lv_snprintf snprintf
# endif # endif
#endif #endif
#ifndef lv_vsnprintf #ifndef lv_vsnprintf
# ifdef CONFIG_lv_vsnprintf # ifdef CONFIG_LV_VSNPRINTF
# define lv_vsnprintf CONFIG_lv_vsnprintf # define lv_vsnprintf CONFIG_LV_VSNPRINTF
# else # else
# define lv_vsnprintf vsnprintf # define lv_vsnprintf vsnprintf
# endif # endif
+21 -8
View File
@@ -30,8 +30,8 @@ extern "C" {
*******************/ *******************/
#ifndef LV_MEM_SIZE #ifndef LV_MEM_SIZE
#if defined (CONFIG_LV_MEM_SIZE_BYTES) #if defined (CONFIG_LV_MEM_SIZE_KILOBYTES)
#define CONFIG_LV_MEM_SIZE (CONFIG_LV_MEM_SIZE_BYTES * 1024U) #define CONFIG_LV_MEM_SIZE (CONFIG_LV_MEM_SIZE_KILOBYTES * 1024U)
#endif #endif
#endif #endif
@@ -337,9 +337,9 @@ extern "C" {
*-----------------*/ *-----------------*/
#ifndef LV_TEXT_ENC #ifndef LV_TEXT_ENC
#ifdef CONFIG_LV_TXT_ENC_UTF8 #ifdef CONFIG_LV_TXT_ENC_UTF8
#define CONFIG_LV_TXT_ENC LV_TXT_ENC_UTF8 #define CONFIG_LV_TXT_ENC LV_TXT_ENC_UTF8
#elif defined CONFIG_LV_TXT_ENC_ASCII #elif defined CONFIG_LV_TXT_ENC_ASCII
#define CONFIG_LV_TXT_ENC LV_TXT_ENC_ASCII #define CONFIG_LV_TXT_ENC LV_TXT_ENC_ASCII
#endif #endif
#endif #endif
@@ -363,11 +363,11 @@ extern "C" {
#ifndef LV_USE_EXT_CLICK_AREA #ifndef LV_USE_EXT_CLICK_AREA
#ifdef CONFIG_LV_USE_EXT_CLICK_AREA_OFF #ifdef CONFIG_LV_USE_EXT_CLICK_AREA_OFF
#define CONFIG_LV_USE_EXT_CLICK_AREA LV_EXT_CLICK_AREA_OFF #define CONFIG_LV_USE_EXT_CLICK_AREA LV_EXT_CLICK_AREA_OFF
#elif defined CONFIG_LV_USE_EXT_CLICK_AREA_TINY #elif defined CONFIG_LV_USE_EXT_CLICK_AREA_TINY
#define CONFIG_LV_USE_EXT_CLICK_AREA LV_EXT_CLICK_AREA_TINY #define CONFIG_LV_USE_EXT_CLICK_AREA LV_EXT_CLICK_AREA_TINY
#elif defined CONFIG_LV_USE_EXT_CLICK_AREA_FULL #elif defined CONFIG_LV_USE_EXT_CLICK_AREA_FULL
#define CONFIG_LV_USE_EXT_CLICK_AREA LV_EXT_CLICK_AREA_FULL #define CONFIG_LV_USE_EXT_CLICK_AREA LV_EXT_CLICK_AREA_FULL
#endif #endif
#endif #endif
@@ -385,7 +385,6 @@ extern "C" {
#endif #endif
#endif #endif
/*------------------ /*------------------
* SPINNER DEF ANIM * SPINNER DEF ANIM
*-----------------*/ *-----------------*/
@@ -400,6 +399,20 @@ extern "C" {
#endif #endif
#endif #endif
/*------------------
* SPRINTF DISABLE FLOAT
*-----------------*/
#if defined(CONFIG_LV_CONF_SKIP) || defined(LV_CONF_SKIP)
# ifndef LV_SPRINTF_DISABLE_FLOAT
# ifndef CONFIG_LV_SPRINTF_DISABLE_FLOAT
# define LV_SPRINTF_DISABLE_FLOAT 0
# else
# define LV_SPRINTF_DISABLE_FLOAT 1
# endif
# endif
#endif
#ifdef __cplusplus #ifdef __cplusplus
} /* extern "C" */ } /* extern "C" */
#endif #endif
-49
View File
@@ -1,49 +0,0 @@
/*
* Copyright (c) 2020 Jan Van Winkel <jan.van_winkel@dxplore.eu>
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifdef __ZEPHYR__
#include <autoconf.h>
#define LV_MEM_CUSTOM 1
#define LV_MEMCPY_MEMSET_STD 1
#ifdef CONFIG_LVGL_MEM_POOL_HEAP_KERNEL
#define LV_MEM_CUSTOM_INCLUDE "kernel.h"
#define LV_MEM_CUSTOM_ALLOC k_malloc
#define LV_MEM_CUTOM_FREE k_free
#elif defined(CONFIG_LVGL_MEM_POOL_HEAP_LIB_C)
#define LV_MEM_CUSTOM_INCLUDE "stdlib.h"
#define LV_MEM_CUSTOM_ALLOC malloc
#define LV_MEM_CUTOM_FREE free
#else
#define LV_MEM_CUSTOM_INCLUDE "lvgl_mem.h"
#define LV_MEM_CUSTOM_ALLOC lvgl_malloc
#define LV_MEM_CUTOM_FREE lvgl_free
#endif
#define LV_ENABLE_GC 0
#define LV_TICK_CUSTOM 1
#define LV_TICK_CUSTOM_INCLUDE "kernel.h"
#define LV_TICK_CUSTOM_SYS_TIME_EXPR (k_uptime_get_32())
#define LV_SPRINTF_CUSTOM 1
#if LV_SPRINTF_CUSTOM
#define LV_SPRINTF_INCLUDE "stdio.h"
#define lv_snprintf snprintf
#define lv_vsnprintf vsnprintf
#endif
#endif
+1 -3
View File
@@ -161,7 +161,6 @@ void lv_disp_set_bg_image(lv_disp_t * disp, const void * img_src)
_lv_inv_area(disp, &a); _lv_inv_area(disp, &a);
} }
/** /**
* Opacity of the background * Opacity of the background
* @param disp pointer to a display * @param disp pointer to a display
@@ -197,8 +196,7 @@ void lv_scr_load_anim(lv_obj_t * new_scr, lv_scr_load_anim_t anim_type, uint32_t
lv_disp_t * d = lv_obj_get_disp(new_scr); lv_disp_t * d = lv_obj_get_disp(new_scr);
lv_obj_t * act_scr = lv_scr_act(); lv_obj_t * act_scr = lv_scr_act();
if(d->del_prev && act_scr != d->scr_to_load && d->scr_to_load) {
if(d->del_prev && act_scr != d->scr_to_load) {
lv_obj_del(act_scr); lv_obj_del(act_scr);
lv_disp_load_scr(d->scr_to_load); lv_disp_load_scr(d->scr_to_load);
lv_anim_del(d->scr_to_load, NULL); lv_anim_del(d->scr_to_load, NULL);
-1
View File
@@ -199,7 +199,6 @@ static inline void lv_scr_load(lv_obj_t * scr)
#define LV_VER_RES lv_disp_get_ver_res(lv_disp_get_default()) #define LV_VER_RES lv_disp_get_ver_res(lv_disp_get_default())
#endif #endif
/** /**
* Same as Android's DIP. (Different name is chosen to avoid mistype between LV_DPI and LV_DIP) * Same as Android's DIP. (Different name is chosen to avoid mistype between LV_DPI and LV_DIP)
* 1 dip is 1 px on a 160 DPI screen * 1 dip is 1 px on a 160 DPI screen
+2 -6
View File
@@ -13,10 +13,6 @@
#include "../lv_themes/lv_theme.h" #include "../lv_themes/lv_theme.h"
#include "../lv_misc/lv_gc.h" #include "../lv_misc/lv_gc.h"
#if defined(LV_GC_INCLUDE)
#include LV_GC_INCLUDE
#endif /* LV_ENABLE_GC */
/********************* /*********************
* DEFINES * DEFINES
*********************/ *********************/
@@ -84,7 +80,7 @@ lv_group_t * lv_group_create(void)
*/ */
void lv_group_del(lv_group_t * group) void lv_group_del(lv_group_t * group)
{ {
/*Defocus the the currently focused object*/ /*Defocus the currently focused object*/
if(group->obj_focus != NULL) { if(group->obj_focus != NULL) {
(*group->obj_focus)->signal_cb(*group->obj_focus, LV_SIGNAL_DEFOCUS, NULL); (*group->obj_focus)->signal_cb(*group->obj_focus, LV_SIGNAL_DEFOCUS, NULL);
lv_obj_invalidate(*group->obj_focus); lv_obj_invalidate(*group->obj_focus);
@@ -191,7 +187,7 @@ void lv_group_remove_obj(lv_obj_t * obj)
*/ */
void lv_group_remove_all_objs(lv_group_t * group) void lv_group_remove_all_objs(lv_group_t * group)
{ {
/*Defocus the the currently focused object*/ /*Defocus the currently focused object*/
if(group->obj_focus != NULL) { if(group->obj_focus != NULL) {
(*group->obj_focus)->signal_cb(*group->obj_focus, LV_SIGNAL_DEFOCUS, NULL); (*group->obj_focus)->signal_cb(*group->obj_focus, LV_SIGNAL_DEFOCUS, NULL);
lv_obj_invalidate(*group->obj_focus); lv_obj_invalidate(*group->obj_focus);
+3 -7
View File
@@ -578,7 +578,7 @@ static void indev_encoder_proc(lv_indev_t * i, lv_indev_data_t * data)
} }
/* Save the last keys before anything else. /* Save the last keys before anything else.
* They need to be already saved if the the function returns for any reason*/ * They need to be already saved if the function returns for any reason*/
lv_indev_state_t last_state = i->proc.types.keypad.last_state; lv_indev_state_t last_state = i->proc.types.keypad.last_state;
i->proc.types.keypad.last_state = data->state; i->proc.types.keypad.last_state = data->state;
i->proc.types.keypad.last_key = data->key; i->proc.types.keypad.last_key = data->key;
@@ -650,7 +650,7 @@ static void indev_encoder_proc(lv_indev_t * i, lv_indev_data_t * data)
/*On enter long press toggle edit mode.*/ /*On enter long press toggle edit mode.*/
if(editable) { if(editable) {
/*Don't leave edit mode if there is only one object (nowhere to navigate)*/ /*Don't leave edit mode if there is only one object (nowhere to navigate)*/
if(_lv_ll_is_empty(&g->obj_ll) == false) { if(_lv_ll_get_len(&g->obj_ll) > 1) {
lv_group_set_editing(g, lv_group_get_editing(g) ? false : true); /*Toggle edit mode on long press*/ lv_group_set_editing(g, lv_group_get_editing(g) ? false : true); /*Toggle edit mode on long press*/
} }
} }
@@ -716,7 +716,7 @@ static void indev_encoder_proc(lv_indev_t * i, lv_indev_data_t * data)
/*An object is being edited and the button is released. */ /*An object is being edited and the button is released. */
else if(g->editing) { else if(g->editing) {
/*Ignore long pressed enter release because it comes from mode switch*/ /*Ignore long pressed enter release because it comes from mode switch*/
if(!i->proc.long_pr_sent || _lv_ll_is_empty(&g->obj_ll)) { if(!i->proc.long_pr_sent || _lv_ll_get_len(&g->obj_ll) <= 1) {
indev_obj_act->signal_cb(indev_obj_act, LV_SIGNAL_RELEASED, NULL); indev_obj_act->signal_cb(indev_obj_act, LV_SIGNAL_RELEASED, NULL);
if(indev_reset_check(&i->proc)) return; if(indev_reset_check(&i->proc)) return;
@@ -1170,7 +1170,6 @@ static void indev_click_focus(lv_indev_proc_t * proc)
} }
/** /**
* Handle the gesture of indev_proc_p->types.pointer.act_obj * Handle the gesture of indev_proc_p->types.pointer.act_obj
* @param indev pointer to a input device state * @param indev pointer to a input device state
@@ -1190,7 +1189,6 @@ void indev_gesture(lv_indev_proc_t * proc)
if(gesture_obj == NULL) return; if(gesture_obj == NULL) return;
if((LV_ABS(proc->types.pointer.vect.x) < indev_act->driver.gesture_min_velocity) && if((LV_ABS(proc->types.pointer.vect.x) < indev_act->driver.gesture_min_velocity) &&
(LV_ABS(proc->types.pointer.vect.y) < indev_act->driver.gesture_min_velocity)) { (LV_ABS(proc->types.pointer.vect.y) < indev_act->driver.gesture_min_velocity)) {
proc->types.pointer.gesture_sum.x = 0; proc->types.pointer.gesture_sum.x = 0;
@@ -1226,8 +1224,6 @@ void indev_gesture(lv_indev_proc_t * proc)
} }
} }
/** /**
* Checks if the reset_query flag has been set. If so, perform necessary global indev cleanup actions * Checks if the reset_query flag has been set. If so, perform necessary global indev cleanup actions
* @param proc pointer to an input device 'proc' * @param proc pointer to an input device 'proc'
+1 -6
View File
@@ -23,10 +23,6 @@
#include "../lv_widgets/lv_label.h" #include "../lv_widgets/lv_label.h"
#endif #endif
#if defined(LV_GC_INCLUDE)
#include LV_GC_INCLUDE
#endif /* LV_ENABLE_GC */
/********************* /*********************
* DEFINES * DEFINES
*********************/ *********************/
@@ -78,7 +74,7 @@ void _lv_refr_init(void)
/** /**
* Redraw the invalidated areas now. * Redraw the invalidated areas now.
* Normally the redrawing is periodically executed in `lv_task_handler` but a long blocking process * Normally the redrawing is periodically executed in `lv_task_handler` but a long blocking process
* can prevent the call of `lv_task_handler`. In this case if the the GUI is updated in the process * can prevent the call of `lv_task_handler`. In this case if the GUI is updated in the process
* (e.g. progress bar) this function can be called when the screen should be updated. * (e.g. progress bar) this function can be called when the screen should be updated.
* @param disp pointer to display to refresh. NULL to refresh all displays. * @param disp pointer to display to refresh. NULL to refresh all displays.
*/ */
@@ -564,7 +560,6 @@ static void lv_refr_area_part(const lv_area_t * area_p)
} }
if(top_act_scr == NULL) { if(top_act_scr == NULL) {
top_act_scr = disp_refr->act_scr; top_act_scr = disp_refr->act_scr;
} }
+1 -1
View File
@@ -50,7 +50,7 @@ void _lv_refr_init(void);
/** /**
* Redraw the invalidated areas now. * Redraw the invalidated areas now.
* Normally the redrawing is periodically executed in `lv_task_handler` but a long blocking process * Normally the redrawing is periodically executed in `lv_task_handler` but a long blocking process
* can prevent the call of `lv_task_handler`. In this case if the the GUI is updated in the process * can prevent the call of `lv_task_handler`. In this case if the GUI is updated in the process
* (e.g. progress bar) this function can be called when the screen should be updated. * (e.g. progress bar) this function can be called when the screen should be updated.
* @param disp pointer to display to refresh. NULL to refresh all displays. * @param disp pointer to display to refresh. NULL to refresh all displays.
*/ */
-2
View File
@@ -581,8 +581,6 @@ bool lv_style_is_empty(const lv_style_t * style);
*/ */
#define LV_STYLE_CREATE(name, copy_p) static lv_style_t name; lv_style_init(&name); lv_style_copy(&name, copy_p); #define LV_STYLE_CREATE(name, copy_p) static lv_style_t name; lv_style_init(&name); lv_style_copy(&name, copy_p);
#if LV_USE_DEBUG #if LV_USE_DEBUG
# ifndef LV_DEBUG_IS_STYLE # ifndef LV_DEBUG_IS_STYLE
-5
View File
@@ -34,7 +34,6 @@ typedef struct {
const lv_area_t * clip_area; const lv_area_t * clip_area;
} quarter_draw_dsc_t; } quarter_draw_dsc_t;
/********************** /**********************
* STATIC PROTOTYPES * STATIC PROTOTYPES
**********************/ **********************/
@@ -44,7 +43,6 @@ static void draw_quarter_2(quarter_draw_dsc_t * q);
static void draw_quarter_3(quarter_draw_dsc_t * q); static void draw_quarter_3(quarter_draw_dsc_t * q);
static void get_rounded_area(int16_t angle, lv_coord_t radius, uint8_t thickness, lv_area_t * res_area); static void get_rounded_area(int16_t angle, lv_coord_t radius, uint8_t thickness, lv_area_t * res_area);
/********************** /**********************
* STATIC VARIABLES * STATIC VARIABLES
**********************/ **********************/
@@ -364,7 +362,6 @@ static void draw_quarter_2(quarter_draw_dsc_t * q)
} }
} }
static void draw_quarter_3(quarter_draw_dsc_t * q) static void draw_quarter_3(quarter_draw_dsc_t * q)
{ {
lv_area_t quarter_area; lv_area_t quarter_area;
@@ -418,7 +415,6 @@ static void draw_quarter_3(quarter_draw_dsc_t * q)
} }
} }
static void get_rounded_area(int16_t angle, lv_coord_t radius, uint8_t thickness, lv_area_t * res_area) static void get_rounded_area(int16_t angle, lv_coord_t radius, uint8_t thickness, lv_area_t * res_area)
{ {
const uint8_t ps = 8; const uint8_t ps = 8;
@@ -456,4 +452,3 @@ static void get_rounded_area(int16_t angle, lv_coord_t radius, uint8_t thickness
res_area->y2 = cir_y + thick_half - thick_corr; res_area->y2 = cir_y + thick_half - thick_corr;
} }
} }
+8 -18
View File
@@ -70,7 +70,7 @@ static inline lv_color_t color_blend_true_color_subtractive(lv_color_t fg, lv_co
* STATIC VARIABLES * STATIC VARIABLES
**********************/ **********************/
#if LV_USE_GPU || LV_USE_GPU_STM32_DMA2D #if (LV_USE_GPU || LV_USE_GPU_STM32_DMA2D) && (LV_USE_GPU_NXP_PXP == 0) && (LV_USE_GPU_NXP_VG_LITE == 0)
LV_ATTRIBUTE_DMA static lv_color_t blend_buf[LV_HOR_RES_MAX]; LV_ATTRIBUTE_DMA static lv_color_t blend_buf[LV_HOR_RES_MAX];
#endif #endif
@@ -78,7 +78,6 @@ static inline lv_color_t color_blend_true_color_subtractive(lv_color_t fg, lv_co
* MACROS * MACROS
**********************/ **********************/
#define FILL_NORMAL_MASK_PX(out_x, color) \ #define FILL_NORMAL_MASK_PX(out_x, color) \
if(*mask_tmp_x) { \ if(*mask_tmp_x) { \
if(*mask_tmp_x == LV_OPA_COVER) disp_buf_first[out_x] = color; \ if(*mask_tmp_x == LV_OPA_COVER) disp_buf_first[out_x] = color; \
@@ -86,7 +85,6 @@ static inline lv_color_t color_blend_true_color_subtractive(lv_color_t fg, lv_co
} \ } \
mask_tmp_x++; mask_tmp_x++;
#define FILL_NORMAL_MASK_PX_SCR_TRANSP(out_x, color) \ #define FILL_NORMAL_MASK_PX_SCR_TRANSP(out_x, color) \
if(*mask_tmp_x) { \ if(*mask_tmp_x) { \
if(*mask_tmp_x == LV_OPA_COVER) disp_buf_first[out_x] = color; \ if(*mask_tmp_x == LV_OPA_COVER) disp_buf_first[out_x] = color; \
@@ -96,7 +94,6 @@ static inline lv_color_t color_blend_true_color_subtractive(lv_color_t fg, lv_co
} \ } \
mask_tmp_x++; mask_tmp_x++;
#define MAP_NORMAL_MASK_PX(x) \ #define MAP_NORMAL_MASK_PX(x) \
if(*mask_tmp_x) { \ if(*mask_tmp_x) { \
if(*mask_tmp_x == LV_OPA_COVER) disp_buf_first[x] = map_buf_first[x]; \ if(*mask_tmp_x == LV_OPA_COVER) disp_buf_first[x] = map_buf_first[x]; \
@@ -117,7 +114,6 @@ static inline lv_color_t color_blend_true_color_subtractive(lv_color_t fg, lv_co
* GLOBAL FUNCTIONS * GLOBAL FUNCTIONS
**********************/ **********************/
/** /**
* Fill and area in the display buffer. * Fill and area in the display buffer.
* @param clip_area clip the fill to this area (absolute coordinates) * @param clip_area clip the fill to this area (absolute coordinates)
@@ -252,7 +248,6 @@ LV_ATTRIBUTE_FAST_MEM void _lv_blend_map(const lv_area_t * clip_area, const lv_a
#endif #endif
} }
/********************** /**********************
* STATIC FUNCTIONS * STATIC FUNCTIONS
**********************/ **********************/
@@ -336,12 +331,7 @@ LV_ATTRIBUTE_FAST_MEM static void fill_normal(const lv_area_t * disp_area, lv_co
/*Simple fill (maybe with opacity), no masking*/ /*Simple fill (maybe with opacity), no masking*/
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) { if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
if(opa > LV_OPA_MAX) { if(opa > LV_OPA_MAX) {
#if LV_USE_GPU #if LV_USE_GPU_NXP_PXP
if(disp->driver.gpu_fill_cb && lv_area_get_size(draw_area) > GPU_SIZE_LIMIT) {
disp->driver.gpu_fill_cb(&disp->driver, disp_buf, disp_w, draw_area, color);
return;
}
#elif LV_USE_GPU_NXP_PXP
if(lv_area_get_size(draw_area) >= LV_GPU_NXP_PXP_FILL_SIZE_LIMIT) { if(lv_area_get_size(draw_area) >= LV_GPU_NXP_PXP_FILL_SIZE_LIMIT) {
lv_gpu_nxp_pxp_fill(disp_buf, disp_w, draw_area, color, opa); lv_gpu_nxp_pxp_fill(disp_buf, disp_w, draw_area, color, opa);
return; return;
@@ -358,6 +348,11 @@ LV_ATTRIBUTE_FAST_MEM static void fill_normal(const lv_area_t * disp_area, lv_co
lv_gpu_stm32_dma2d_fill(disp_buf_first, disp_w, color, draw_area_w, draw_area_h); lv_gpu_stm32_dma2d_fill(disp_buf_first, disp_w, color, draw_area_w, draw_area_h);
return; return;
} }
#elif LV_USE_GPU
if(disp->driver.gpu_fill_cb && lv_area_get_size(draw_area) > GPU_SIZE_LIMIT) {
disp->driver.gpu_fill_cb(&disp->driver, disp_buf, disp_w, draw_area, color);
return;
}
#endif #endif
/*Software rendering*/ /*Software rendering*/
for(y = 0; y < draw_area_h; y++) { for(y = 0; y < draw_area_h; y++) {
@@ -392,7 +387,6 @@ LV_ATTRIBUTE_FAST_MEM static void fill_normal(const lv_area_t * disp_area, lv_co
} }
#endif #endif
#if LV_USE_GPU_STM32_DMA2D #if LV_USE_GPU_STM32_DMA2D
if(lv_area_get_size(draw_area) >= 240) { if(lv_area_get_size(draw_area) >= 240) {
if(blend_buf[0].full != color.full) lv_color_fill(blend_buf, color, LV_HOR_RES_MAX); if(blend_buf[0].full != color.full) lv_color_fill(blend_buf, color, LV_HOR_RES_MAX);
@@ -450,7 +444,6 @@ LV_ATTRIBUTE_FAST_MEM static void fill_normal(const lv_area_t * disp_area, lv_co
} }
#endif #endif
/*Buffer the result color to avoid recalculating the same color*/ /*Buffer the result color to avoid recalculating the same color*/
lv_color_t last_dest_color; lv_color_t last_dest_color;
lv_color_t last_res_color; lv_color_t last_res_color;
@@ -581,7 +574,6 @@ static void fill_blended(const lv_area_t * disp_area, lv_color_t * disp_buf, co
/*Create a temp. disp_buf which always point to current line to draw*/ /*Create a temp. disp_buf which always point to current line to draw*/
lv_color_t * disp_buf_tmp = disp_buf + disp_w * draw_area->y1; lv_color_t * disp_buf_tmp = disp_buf + disp_w * draw_area->y1;
lv_color_t (*blend_fp)(lv_color_t, lv_color_t, lv_opa_t); lv_color_t (*blend_fp)(lv_color_t, lv_color_t, lv_opa_t);
switch(mode) { switch(mode) {
case LV_BLEND_MODE_ADDITIVE: case LV_BLEND_MODE_ADDITIVE:
@@ -757,7 +749,7 @@ LV_ATTRIBUTE_FAST_MEM static void map_normal(const lv_area_t * disp_area, lv_col
if(opa > LV_OPA_MAX) { if(opa > LV_OPA_MAX) {
#if LV_USE_GPU_NXP_PXP #if LV_USE_GPU_NXP_PXP
if(lv_area_get_size(draw_area) >= GPU_NXP_PXP_BLIT_SIZE_LIMIT) { if(lv_area_get_size(draw_area) >= LV_GPU_NXP_PXP_BLIT_SIZE_LIMIT) {
lv_gpu_nxp_pxp_blit(disp_buf_first, disp_w, map_buf_first, map_w, draw_area_w, draw_area_h, opa); lv_gpu_nxp_pxp_blit(disp_buf_first, disp_w, map_buf_first, map_w, draw_area_w, draw_area_h, opa);
return; return;
} }
@@ -775,7 +767,6 @@ LV_ATTRIBUTE_FAST_MEM static void map_normal(const lv_area_t * disp_area, lv_col
blit.src_area.x2 = blit.src_area.x1 + draw_area_w; blit.src_area.x2 = blit.src_area.x1 + draw_area_w;
blit.src_area.y2 = blit.src_area.y1 + draw_area_h; blit.src_area.y2 = blit.src_area.y1 + draw_area_h;
blit.dst = disp_buf; blit.dst = disp_buf;
blit.dst_width = lv_area_get_width(disp_area); blit.dst_width = lv_area_get_width(disp_area);
blit.dst_height = lv_area_get_height(disp_area); blit.dst_height = lv_area_get_height(disp_area);
@@ -826,7 +817,6 @@ LV_ATTRIBUTE_FAST_MEM static void map_normal(const lv_area_t * disp_area, lv_col
blit.src_area.x2 = blit.src_area.x1 + draw_area_w; blit.src_area.x2 = blit.src_area.x1 + draw_area_w;
blit.src_area.y2 = blit.src_area.y1 + draw_area_h; blit.src_area.y2 = blit.src_area.y1 + draw_area_h;
blit.dst = disp_buf; blit.dst = disp_buf;
blit.dst_width = lv_area_get_width(disp_area); blit.dst_width = lv_area_get_width(disp_area);
blit.dst_height = lv_area_get_height(disp_area); blit.dst_height = lv_area_get_height(disp_area);
-1
View File
@@ -42,7 +42,6 @@ typedef uint8_t lv_blend_mode_t;
LV_ATTRIBUTE_FAST_MEM void _lv_blend_fill(const lv_area_t * clip_area, const lv_area_t * fill_area, lv_color_t color, LV_ATTRIBUTE_FAST_MEM void _lv_blend_fill(const lv_area_t * clip_area, const lv_area_t * fill_area, lv_color_t color,
lv_opa_t * mask, lv_draw_mask_res_t mask_res, lv_opa_t opa, lv_blend_mode_t mode); lv_opa_t * mask, lv_draw_mask_res_t mask_res, lv_opa_t opa, lv_blend_mode_t mode);
LV_ATTRIBUTE_FAST_MEM void _lv_blend_map(const lv_area_t * clip_area, const lv_area_t * map_area, LV_ATTRIBUTE_FAST_MEM void _lv_blend_map(const lv_area_t * clip_area, const lv_area_t * map_area,
const lv_color_t * map_buf, const lv_color_t * map_buf,
lv_opa_t * mask, lv_draw_mask_res_t mask_res, lv_opa_t opa, lv_blend_mode_t mode); lv_opa_t * mask, lv_draw_mask_res_t mask_res, lv_opa_t opa, lv_blend_mode_t mode);
+1 -5
View File
@@ -313,7 +313,6 @@ LV_ATTRIBUTE_FAST_MEM static lv_res_t lv_img_draw_core(const lv_area_t * coords,
return LV_RES_INV; return LV_RES_INV;
} }
lv_draw_map(&line, &mask_line, buf, draw_dsc, chroma_keyed, alpha_byte); lv_draw_map(&line, &mask_line, buf, draw_dsc, chroma_keyed, alpha_byte);
line.y1++; line.y1++;
line.y2++; line.y2++;
@@ -512,7 +511,6 @@ LV_ATTRIBUTE_FAST_MEM static void lv_draw_map(const lv_area_t * map_area, const
mask_res = (alpha_byte || chroma_key || draw_dsc->angle || mask_res = (alpha_byte || chroma_key || draw_dsc->angle ||
draw_dsc->zoom != LV_IMG_ZOOM_NONE) ? LV_DRAW_MASK_RES_CHANGED : LV_DRAW_MASK_RES_FULL_COVER; draw_dsc->zoom != LV_IMG_ZOOM_NONE) ? LV_DRAW_MASK_RES_CHANGED : LV_DRAW_MASK_RES_FULL_COVER;
/*Prepare the `mask_buf`if there are other masks*/ /*Prepare the `mask_buf`if there are other masks*/
if(other_mask_cnt) { if(other_mask_cnt) {
lv_memset_ff(mask_buf, mask_buf_size); lv_memset_ff(mask_buf, mask_buf_size);
@@ -532,7 +530,6 @@ LV_ATTRIBUTE_FAST_MEM static void lv_draw_map(const lv_area_t * map_area, const
#endif #endif
for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) { for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) {
#if LV_USE_IMG_TRANSFORM #if LV_USE_IMG_TRANSFORM
if(transform) { if(transform) {
@@ -656,11 +653,10 @@ static void show_error(const lv_area_t * coords, const lv_area_t * clip_area, co
static void draw_cleanup(lv_img_cache_entry_t * cache) static void draw_cleanup(lv_img_cache_entry_t * cache)
{ {
/*Automatically close images with no caching*/ /*Automatically close images with no caching*/
#if LV_IMG_CACHE_DEF_SIZE == 0 #if LV_IMG_CACHE_DEF_SIZE == 0
lv_img_decoder_close(&cache->dec_dsc); lv_img_decoder_close(&cache->dec_dsc);
#else #else
LV_UNUSED(cache); LV_UNUSED(cache);
#endif #endif
} }
-1
View File
@@ -89,7 +89,6 @@ bool lv_img_cf_is_chroma_keyed(lv_img_cf_t cf);
*/ */
bool lv_img_cf_has_alpha(lv_img_cf_t cf); bool lv_img_cf_has_alpha(lv_img_cf_t cf);
#ifdef __cplusplus #ifdef __cplusplus
} /* extern "C" */ } /* extern "C" */
#endif #endif
+1 -9
View File
@@ -41,7 +41,6 @@ LV_ATTRIBUTE_FAST_MEM static void draw_letter_normal(lv_coord_t pos_x, lv_coord_
static void draw_letter_subpx(lv_coord_t pos_x, lv_coord_t pos_y, lv_font_glyph_dsc_t * g, const lv_area_t * clip_area, static void draw_letter_subpx(lv_coord_t pos_x, lv_coord_t pos_y, lv_font_glyph_dsc_t * g, const lv_area_t * clip_area,
const uint8_t * map_p, lv_color_t color, lv_opa_t opa, lv_blend_mode_t blend_mode); const uint8_t * map_p, lv_color_t color, lv_opa_t opa, lv_blend_mode_t blend_mode);
static uint8_t hex_char_to_num(char hex); static uint8_t hex_char_to_num(char hex);
/********************** /**********************
@@ -231,7 +230,6 @@ LV_ATTRIBUTE_FAST_MEM void lv_draw_label(const lv_area_t * coords, const lv_area
lv_color_t recolor; lv_color_t recolor;
int32_t letter_w; int32_t letter_w;
lv_draw_rect_dsc_t draw_dsc_sel; lv_draw_rect_dsc_t draw_dsc_sel;
lv_draw_rect_dsc_init(&draw_dsc_sel); lv_draw_rect_dsc_init(&draw_dsc_sel);
draw_dsc_sel.bg_color = dsc->sel_bg_color; draw_dsc_sel.bg_color = dsc->sel_bg_color;
@@ -388,7 +386,6 @@ LV_ATTRIBUTE_FAST_MEM void lv_draw_label(const lv_area_t * coords, const lv_area
* STATIC FUNCTIONS * STATIC FUNCTIONS
**********************/ **********************/
/** /**
* Draw a letter in the Virtual Display Buffer * Draw a letter in the Virtual Display Buffer
* @param pos_p left-top coordinate of the latter * @param pos_p left-top coordinate of the latter
@@ -414,7 +411,7 @@ LV_ATTRIBUTE_FAST_MEM static void lv_draw_letter(const lv_point_t * pos_p, const
lv_font_glyph_dsc_t g; lv_font_glyph_dsc_t g;
bool g_ret = lv_font_get_glyph_dsc(font_p, &g, letter, '\0'); bool g_ret = lv_font_get_glyph_dsc(font_p, &g, letter, '\0');
if(g_ret == false) { if(g_ret == false) {
/* Add waring if the dsc is not found /* Add warning if the dsc is not found
* but do not print warning for non printable ASCII chars (e.g. '\n')*/ * but do not print warning for non printable ASCII chars (e.g. '\n')*/
if(letter >= 0x20) { if(letter >= 0x20) {
LV_LOG_WARN("lv_draw_letter: glyph dsc. not found"); LV_LOG_WARN("lv_draw_letter: glyph dsc. not found");
@@ -436,7 +433,6 @@ LV_ATTRIBUTE_FAST_MEM static void lv_draw_letter(const lv_point_t * pos_p, const
return; return;
} }
const uint8_t * map_p = lv_font_get_glyph_bitmap(font_p, letter); const uint8_t * map_p = lv_font_get_glyph_bitmap(font_p, letter);
if(map_p == NULL) { if(map_p == NULL) {
LV_LOG_WARN("lv_draw_letter: character's bitmap not found"); LV_LOG_WARN("lv_draw_letter: character's bitmap not found");
@@ -451,7 +447,6 @@ LV_ATTRIBUTE_FAST_MEM static void lv_draw_letter(const lv_point_t * pos_p, const
} }
} }
LV_ATTRIBUTE_FAST_MEM static void draw_letter_normal(lv_coord_t pos_x, lv_coord_t pos_y, lv_font_glyph_dsc_t * g, LV_ATTRIBUTE_FAST_MEM static void draw_letter_normal(lv_coord_t pos_x, lv_coord_t pos_y, lv_font_glyph_dsc_t * g,
const lv_area_t * clip_area, const lv_area_t * clip_area,
const uint8_t * map_p, lv_color_t color, lv_opa_t opa, lv_blend_mode_t blend_mode) const uint8_t * map_p, lv_color_t color, lv_opa_t opa, lv_blend_mode_t blend_mode)
@@ -568,7 +563,6 @@ LV_ATTRIBUTE_FAST_MEM static void draw_letter_normal(lv_coord_t pos_x, lv_coord_
mask_p++; mask_p++;
} }
/*Apply masks if any*/ /*Apply masks if any*/
if(other_mask_cnt) { if(other_mask_cnt) {
lv_draw_mask_res_t mask_res = lv_draw_mask_apply(mask_buf + mask_p_start, fill_area.x1, fill_area.y2, lv_draw_mask_res_t mask_res = lv_draw_mask_apply(mask_buf + mask_p_start, fill_area.x1, fill_area.y2,
@@ -646,7 +640,6 @@ static void draw_letter_subpx(lv_coord_t pos_x, lv_coord_t pos_y, lv_font_glyph_
int32_t box_h = g->box_h; int32_t box_h = g->box_h;
int32_t width_bit = box_w * bpp; /*Letter width in bits*/ int32_t width_bit = box_w * bpp; /*Letter width in bits*/
/* Calculate the col/row start/end on the map*/ /* Calculate the col/row start/end on the map*/
int32_t col_start = pos_x >= clip_area->x1 ? 0 : (clip_area->x1 - pos_x) * 3; int32_t col_start = pos_x >= clip_area->x1 ? 0 : (clip_area->x1 - pos_x) * 3;
int32_t col_end = pos_x + box_w / 3 <= clip_area->x2 ? box_w : (clip_area->x2 - pos_x + 1) * 3; int32_t col_end = pos_x + box_w / 3 <= clip_area->x2 ? box_w : (clip_area->x2 - pos_x + 1) * 3;
@@ -816,7 +809,6 @@ static void draw_letter_subpx(lv_coord_t pos_x, lv_coord_t pos_y, lv_font_glyph_
#endif #endif
} }
/** /**
* Convert a hexadecimal characters to a number (0..15) * Convert a hexadecimal characters to a number (0..15)
* @param hex Pointer to a hexadecimal character (0..9, A..F) * @param hex Pointer to a hexadecimal character (0..9, A..F)
-3
View File
@@ -83,7 +83,6 @@ LV_ATTRIBUTE_FAST_MEM void lv_draw_line(const lv_point_t * point1, const lv_poin
else if(point1->x == point2->x) draw_line_ver(point1, point2, &clip_line, dsc); else if(point1->x == point2->x) draw_line_ver(point1, point2, &clip_line, dsc);
else draw_line_skew(point1, point2, &clip_line, dsc); else draw_line_skew(point1, point2, &clip_line, dsc);
if(dsc->round_end || dsc->round_start) { if(dsc->round_end || dsc->round_start) {
lv_draw_rect_dsc_t cir_dsc; lv_draw_rect_dsc_t cir_dsc;
lv_draw_rect_dsc_init(&cir_dsc); lv_draw_rect_dsc_init(&cir_dsc);
@@ -217,7 +216,6 @@ LV_ATTRIBUTE_FAST_MEM static void draw_line_hor(const lv_point_t * point1, const
} }
} }
LV_ATTRIBUTE_FAST_MEM static void draw_line_ver(const lv_point_t * point1, const lv_point_t * point2, LV_ATTRIBUTE_FAST_MEM static void draw_line_ver(const lv_point_t * point1, const lv_point_t * point2,
const lv_area_t * clip, const lv_area_t * clip,
const lv_draw_line_dsc_t * dsc) const lv_draw_line_dsc_t * dsc)
@@ -312,7 +310,6 @@ LV_ATTRIBUTE_FAST_MEM static void draw_line_ver(const lv_point_t * point1, const
} }
} }
LV_ATTRIBUTE_FAST_MEM static void draw_line_skew(const lv_point_t * point1, const lv_point_t * point2, LV_ATTRIBUTE_FAST_MEM static void draw_line_skew(const lv_point_t * point1, const lv_point_t * point2,
const lv_area_t * clip, const lv_area_t * clip,
const lv_draw_line_dsc_t * dsc) const lv_draw_line_dsc_t * dsc)
-1
View File
@@ -51,7 +51,6 @@ LV_ATTRIBUTE_FAST_MEM void lv_draw_line(const lv_point_t * point1, const lv_poin
LV_ATTRIBUTE_FAST_MEM void lv_draw_line_dsc_init(lv_draw_line_dsc_t * dsc); LV_ATTRIBUTE_FAST_MEM void lv_draw_line_dsc_init(lv_draw_line_dsc_t * dsc);
//! @endcond //! @endcond
/********************** /**********************
-19
View File
@@ -12,10 +12,6 @@
#include "../lv_misc/lv_debug.h" #include "../lv_misc/lv_debug.h"
#include "../lv_misc/lv_gc.h" #include "../lv_misc/lv_gc.h"
#if defined(LV_GC_INCLUDE)
#include LV_GC_INCLUDE
#endif /* LV_ENABLE_GC */
/********************* /*********************
* DEFINES * DEFINES
*********************/ *********************/
@@ -284,7 +280,6 @@ void lv_draw_mask_line_angle_init(lv_draw_mask_line_param_t * param, lv_coord_t
* Find the degree which keeps the origo in place */ * Find the degree which keeps the origo in place */
if(angle > 180) angle -= 180; /*> 180 will swap the origo*/ if(angle > 180) angle -= 180; /*> 180 will swap the origo*/
int32_t p2x; int32_t p2x;
int32_t p2y; int32_t p2y;
@@ -294,7 +289,6 @@ void lv_draw_mask_line_angle_init(lv_draw_mask_line_param_t * param, lv_coord_t
lv_draw_mask_line_points_init(param, p1x, py, p2x, p2y, side); lv_draw_mask_line_points_init(param, p1x, py, p2x, p2y, side);
} }
/** /**
* Initialize an angle mask. * Initialize an angle mask.
* @param param pointer to a `lv_draw_mask_param_t` to initialize * @param param pointer to a `lv_draw_mask_param_t` to initialize
@@ -360,7 +354,6 @@ void lv_draw_mask_angle_init(lv_draw_mask_angle_param_t * param, lv_coord_t vert
lv_draw_mask_line_angle_init(&param->end_line, vertex_x, vertex_y, end_angle, end_side); lv_draw_mask_line_angle_init(&param->end_line, vertex_x, vertex_y, end_angle, end_side);
} }
/** /**
* Initialize a fade mask. * Initialize a fade mask.
* @param param param pointer to a `lv_draw_mask_param_t` to initialize * @param param param pointer to a `lv_draw_mask_param_t` to initialize
@@ -385,7 +378,6 @@ void lv_draw_mask_radius_init(lv_draw_mask_radius_param_t * param, const lv_area
param->y_prev_x.i = 0; param->y_prev_x.i = 0;
} }
/** /**
* Initialize a fade mask. * Initialize a fade mask.
* @param param pointer to a `lv_draw_mask_param_t` to initialize * @param param pointer to a `lv_draw_mask_param_t` to initialize
@@ -408,7 +400,6 @@ void lv_draw_mask_fade_init(lv_draw_mask_fade_param_t * param, const lv_area_t *
param->dsc.type = LV_DRAW_MASK_TYPE_FADE; param->dsc.type = LV_DRAW_MASK_TYPE_FADE;
} }
/** /**
* Initialize a map mask. * Initialize a map mask.
* @param param pointer to a `lv_draw_mask_param_t` to initialize * @param param pointer to a `lv_draw_mask_param_t` to initialize
@@ -423,7 +414,6 @@ void lv_draw_mask_map_init(lv_draw_mask_map_param_t * param, const lv_area_t * c
param->dsc.type = LV_DRAW_MASK_TYPE_MAP; param->dsc.type = LV_DRAW_MASK_TYPE_MAP;
} }
/********************** /**********************
* STATIC FUNCTIONS * STATIC FUNCTIONS
**********************/ **********************/
@@ -573,7 +563,6 @@ LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t line_mask_flat(lv_opa_t * mask_b
if(k >= len) break; if(k >= len) break;
} }
if(k < len && k >= 0) { if(k < len && k >= 0) {
int32_t x_inters = (px_h * p->xy_steep) >> 10; int32_t x_inters = (px_h * p->xy_steep) >> 10;
m = (x_inters * px_h) >> 9; m = (x_inters * px_h) >> 9;
@@ -582,7 +571,6 @@ LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t line_mask_flat(lv_opa_t * mask_b
mask_buf[k] = mask_mix(mask_buf[k], m); mask_buf[k] = mask_mix(mask_buf[k], m);
} }
if(p->inv) { if(p->inv) {
k = xei - abs_x; k = xei - abs_x;
if(k > len) { if(k > len) {
@@ -747,7 +735,6 @@ LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t line_mask_steep(lv_opa_t * mask_
return LV_DRAW_MASK_RES_CHANGED; return LV_DRAW_MASK_RES_CHANGED;
} }
LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t lv_draw_mask_angle(lv_opa_t * mask_buf, lv_coord_t abs_x, LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t lv_draw_mask_angle(lv_opa_t * mask_buf, lv_coord_t abs_x,
lv_coord_t abs_y, lv_coord_t len, lv_coord_t abs_y, lv_coord_t len,
lv_draw_mask_angle_param_t * p) lv_draw_mask_angle_param_t * p)
@@ -755,7 +742,6 @@ LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t lv_draw_mask_angle(lv_opa_t * ma
int32_t rel_y = abs_y - p->cfg.vertex_p.y; int32_t rel_y = abs_y - p->cfg.vertex_p.y;
int32_t rel_x = abs_x - p->cfg.vertex_p.x; int32_t rel_x = abs_x - p->cfg.vertex_p.x;
if(p->cfg.start_angle < 180 && p->cfg.end_angle < 180 && if(p->cfg.start_angle < 180 && p->cfg.end_angle < 180 &&
p->cfg.start_angle != 0 && p->cfg.end_angle != 0 && p->cfg.start_angle != 0 && p->cfg.end_angle != 0 &&
p->cfg.start_angle > p->cfg.end_angle) { p->cfg.start_angle > p->cfg.end_angle) {
@@ -768,7 +754,6 @@ LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t lv_draw_mask_angle(lv_opa_t * ma
int32_t end_angle_first = (rel_y * p->end_line.xy_steep) >> 10; int32_t end_angle_first = (rel_y * p->end_line.xy_steep) >> 10;
int32_t start_angle_last = ((rel_y + 1) * p->start_line.xy_steep) >> 10; int32_t start_angle_last = ((rel_y + 1) * p->start_line.xy_steep) >> 10;
/*Do not let the line end cross the vertex else it will affect the opposite part*/ /*Do not let the line end cross the vertex else it will affect the opposite part*/
if(p->cfg.start_angle > 270 && p->cfg.start_angle <= 359 && start_angle_last < 0) start_angle_last = 0; if(p->cfg.start_angle > 270 && p->cfg.start_angle <= 359 && start_angle_last < 0) start_angle_last = 0;
else if(p->cfg.start_angle > 0 && p->cfg.start_angle <= 90 && start_angle_last < 0) start_angle_last = 0; else if(p->cfg.start_angle > 0 && p->cfg.start_angle <= 90 && start_angle_last < 0) start_angle_last = 0;
@@ -778,7 +763,6 @@ LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t lv_draw_mask_angle(lv_opa_t * ma
else if(p->cfg.end_angle > 0 && p->cfg.end_angle <= 90 && start_angle_last < 0) start_angle_last = 0; else if(p->cfg.end_angle > 0 && p->cfg.end_angle <= 90 && start_angle_last < 0) start_angle_last = 0;
else if(p->cfg.end_angle > 90 && p->cfg.end_angle < 270 && start_angle_last > 0) start_angle_last = 0; else if(p->cfg.end_angle > 90 && p->cfg.end_angle < 270 && start_angle_last > 0) start_angle_last = 0;
int32_t dist = (end_angle_first - start_angle_last) >> 1; int32_t dist = (end_angle_first - start_angle_last) >> 1;
lv_draw_mask_res_t res1 = LV_DRAW_MASK_RES_FULL_COVER; lv_draw_mask_res_t res1 = LV_DRAW_MASK_RES_FULL_COVER;
@@ -1139,7 +1123,6 @@ LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t lv_draw_mask_radius(lv_opa_t * m
return LV_DRAW_MASK_RES_CHANGED; return LV_DRAW_MASK_RES_CHANGED;
} }
LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t lv_draw_mask_fade(lv_opa_t * mask_buf, lv_coord_t abs_x, LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t lv_draw_mask_fade(lv_opa_t * mask_buf, lv_coord_t abs_x,
lv_coord_t abs_y, lv_coord_t len, lv_coord_t abs_y, lv_coord_t len,
lv_draw_mask_fade_param_t * p) lv_draw_mask_fade_param_t * p)
@@ -1200,7 +1183,6 @@ LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t lv_draw_mask_map(lv_opa_t * mask
const lv_opa_t * map_tmp = p->cfg.map; const lv_opa_t * map_tmp = p->cfg.map;
map_tmp += (abs_y - p->cfg.coords.y1) * lv_area_get_width(&p->cfg.coords); map_tmp += (abs_y - p->cfg.coords.y1) * lv_area_get_width(&p->cfg.coords);
if(abs_x + len > p->cfg.coords.x2) len -= abs_x + len - p->cfg.coords.x2 - 1; if(abs_x + len > p->cfg.coords.x2) len -= abs_x + len - p->cfg.coords.x2 - 1;
if(abs_x < p->cfg.coords.x1) { if(abs_x < p->cfg.coords.x1) {
@@ -1221,7 +1203,6 @@ LV_ATTRIBUTE_FAST_MEM static lv_draw_mask_res_t lv_draw_mask_map(lv_opa_t * mask
return LV_DRAW_MASK_RES_CHANGED; return LV_DRAW_MASK_RES_CHANGED;
} }
LV_ATTRIBUTE_FAST_MEM static inline lv_opa_t mask_mix(lv_opa_t mask_act, lv_opa_t mask_new) LV_ATTRIBUTE_FAST_MEM static inline lv_opa_t mask_mix(lv_opa_t mask_act, lv_opa_t mask_new)
{ {
if(mask_new >= LV_OPA_MAX) return mask_act; if(mask_new >= LV_OPA_MAX) return mask_act;

Some files were not shown because too many files have changed in this diff Show More