merge master

This commit is contained in:
Gabor Kiss-Vamosi 2021-01-23 23:50:00 +01:00
commit f84720aa95
180 changed files with 774 additions and 2806 deletions

View File

@ -4,4 +4,3 @@ indent_size = 4
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

View File

@ -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.

View File

@ -1,29 +1,43 @@
---
name: Bug report
about: Create a report to help us improve
about: Create a bug report to help us improve
title: ''
labels: ''
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.
-->
**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.
**Expected behavior**
### To Reproduce
<!--
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.
Format the code like this:
```c
your code here
```
-->
### Expected behavior
<!--
A clear and concise description of what you expected to happen.
-->
**Screenshots**
### Screenshots or video
<!--
If applicable, add screenshots to help explain your problem.
**Additional context**
Add any other context about the problem here.
-->

View File

@ -5,7 +5,7 @@ contact_links:
about: Be sure to read to documentation first
- name: Forum
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
url: https://github.com/lvgl/lvgl/blob/master/docs/CONTRIBUTING.md#faq-about-contributing
about: The basic rules of contributing

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
-->

View File

@ -1,12 +1,12 @@
# Comment to a new issue.
pullRequestOpened: |
Thank you for raising your pull request.
To ensure that all licensing criteria is met all repositories of the LVGL project apply a process called DCO (Developer's Certificate of Origin).
To ensure that all licensing criteria is met all repositories of the LVGL project apply a process called DCO (Developer's Certificate of Origin).
The text of DCO can be read here: https://developercertificate.org/
For a more detailed description see the [Documentation](https://docs.lvgl.io/latest/en/html/contributing/index.html#developer-certification-of-origin-dco) site.
By contributing to any repositories of the LVGL project you state that your contribution corresponds with the DCO.
No further action is required if your contribution fulfills the DCO. If you are not sure about it feel free to ask us in a comment.
No further action is required if your contribution fulfills the DCO. If you are not sure about it feel free to ask us in a comment.

View File

@ -5,4 +5,4 @@ A clear and concise description of what the bug or new feature is.
### Checkpoints
- [ ] Follow the [styling guide](https://github.com/lvgl/lvgl/blob/master/docs/CODING_STYLE.md)
- [ ] Update CHANGELOG.md
- [ ] Update the documentation
- [ ] Update the documentation

2
.github/stale.yml vendored
View File

@ -7,7 +7,7 @@ exemptLabels:
- architecture
- pinned
# Label to use when marking an issue as stale
staleLabel: stale
staleLabel: stale
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue or pull request has been automatically marked as stale because it has not had

View File

@ -37,6 +37,5 @@ jobs:
echo "import gc,utime;
utime.sleep(5);
gc.collect();
utime.sleep(5)" |
utime.sleep(5)" |
ports/unix/micropython -i lib/lv_bindings/examples/advanced_demo.py

16
.github/workflows/main.yml vendored Normal file
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"

View File

@ -1,11 +1,23 @@
# 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
### New features
- 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
- Added support for Zephyr integration
### Bugfixes
- fix(draw_rect) free buffer used for arabic processing
@ -15,8 +27,11 @@
- fix(textarea) cursor position after hiding character in password mode
- fix(linemeter) draw critical lines with correct color
- fix(lv_conf_internal) be sure Kconfig defines are always uppercase
- fix(kconfig) handle disable sprintf float correctly.
- fix(layout) stop layout after recursion threshold is reached
- fix(gauge) fix redraw with image needle
## v7.8.1 (Plannad at 15.12.2020)
## v7.8.1
### Bugfixes
- 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(polygon draw) join adjacent points if they are on the same coordinate
- fix(linemeter) fix invalidation when setting new value
- fix(table) add missing invalidation when changeing cell type
- fix(table) add missing invalidation when changing cell type
- refactor(roller) rename LV_ROLLER_MODE_INIFINITE -> LV_ROLLER_MODE_INFINITE
## v7.7.2 (17.11.2020)
@ -53,7 +68,7 @@
- fix(arc) fix and improve arc dragging
- label: Repair calculate back `dot` character logical error which cause infinite loop.
- fix(theme_material): remove the bottom border from tabview header
- fix(imgbtn) guess 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
## v7.7.1 (03.11.2020)
@ -70,7 +85,7 @@
- Allow max. 16 cell types for table
- Add `lv_table_set_text_fmt()`
- Use margin on calendar header to set distances and padding to the size of the header
- Add `text_sel_bg` style proeprty
- Add `text_sel_bg` style property
### Bugfixes
- Theme update to support text selection background
@ -93,7 +108,6 @@
- Fix imgbtn image switching with empty style
- Material theme: do not set the text font to allow easy global font change
## v7.6.0 (22.09.2020)
### New features
@ -111,7 +125,7 @@
- Add 10px and 8ox built in fonts
### 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.
- Adjust button matrix button width to include padding when spanning multiple units.
- 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
- Add `lv_font_load()` function - Loads a `lv_font_t` object from a binary font file
- Add `lv_font_free()` function - Frees the memory allocated by the `lv_font_load()` function
- Add style caching to reduce 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 `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
- 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
- fix using freed memory in _lv_style_list_remove_style
## v7.2.0 (21.07.2020)
### 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
- DMA2D: Remove dependency on ST CubeMX HAL
- 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 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.
@ -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)
- `lv_chart` fix X tick drawing
- Fix vertical dashed line drawing
- Some additonal minor fixes and formattings
- Some additional minor fixes and formattings
## 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.
### New drawing system
Complete rework of LVGL's draw engine to use "masks" for more advanced and higher quality graphical effects.
A possible use-case of this system is to remove the overflowing content from the rounded edges.
@ -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_pivot`: set the pivot point of rotation
The new drawing engine brought new drawing features too. They are highlighted in the "style" section.
### New style system

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")
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()
message(FATAL_ERROR "Unknown platform.")
endif()

137
Kconfig
View File

@ -1,7 +1,7 @@
# Kconfig file for LVGL v7.8.1
menu "LVGL configuration"
config LV_ATTRIBUTE_FAST_MEM_USE_IRAM
bool "Set IRAM as LV_ATTRIBUTE_FAST_MEM"
help
@ -47,12 +47,14 @@ menu "LVGL configuration"
default 8 if LV_COLOR_DEPTH_8
default 16 if LV_COLOR_DEPTH_16
default 32 if LV_COLOR_DEPTH_32
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)."
depends on LV_COLOR_DEPTH_16
config LV_COLOR_SCREEN_TRANSP
bool "Enable screen transparency."
depends on LV_COLOR_DEPTH_32
help
Useful for OSD or other overlapping GUIs.
Requires `LV_COLOR_DEPTH = 32` colors and the screen's style
@ -95,7 +97,7 @@ menu "LVGL configuration"
According to the width of the display (hor. res. / dpi) the
displays fall in 4 categories. This is the upper limit for medium
displays.
config LV_DISP_LARGE_LIMIT
int "Large display limit"
default 70
@ -103,34 +105,34 @@ menu "LVGL configuration"
According to the width of the display (hor. res. / dpi) the
displays fall in 4 categories. This is the upper limit for large
displays.
menu "Memory manager settings"
config LV_MEM_CUSTOM
bool
prompt "If true use custom malloc/free, otherwise use the built-in `lv_mem_alloc` and `lv_mem_free`"
bool
prompt "If true use custom malloc/free, otherwise use the built-in `lv_mem_alloc` and `lv_mem_free`"
config LV_MEM_CUSTOM_INCLUDE
string
prompt "Header to include for the custom memory function"
default stdlib.h
default "stdlib.h"
depends on LV_MEM_CUSTOM
config LV_MEM_CUSTOM_ALLOC
string
prompt "Wrapper to malloc"
default malloc
default "malloc"
depends on LV_MEM_CUSTOM
config LV_MEM_CUSTOM_FREE
string
prompt "Wrapper to free"
default free
default "free"
depends on LV_MEM_CUSTOM
config LV_MEM_SIZE_BYTES
int
prompt "Size of the memory used by `lv_mem_alloc` in kilobytes (>= 2kB)"
range 2 128
config LV_MEM_SIZE_KILOBYTES
int
prompt "Size of the memory used by `lv_mem_alloc` in kilobytes (>= 2kB)"
range 2 128
default 32
depends on !LV_MEM_CUSTOM
@ -138,7 +140,7 @@ menu "LVGL configuration"
bool
prompt "Use the standard memcpy and memset instead of LVGL's own functions"
endmenu
menu "Indev device settings"
config LV_INDEV_DEF_READ_PERIOD
int "Input device read period [ms]."
@ -163,7 +165,7 @@ menu "LVGL configuration"
default 3
endmenu
menu "Feature usage"
config LV_USE_ANIMATION
bool "Enable the Animations."
@ -208,6 +210,7 @@ menu "LVGL configuration"
bool "Enable STM32 DMA2D."
config LV_GPU_DMA2D_CMSIS_INCLUDE
string "include path of CMSIS header of target processor"
depends on LV_USE_GPU_STM32_DMA2D
default ""
help
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."
config LV_USE_GPU_NXP_PXP_AUTO_INIT
bool "Call lv_gpu_nxp_pxp_init() automatically or manually."
depends on LV_USE_GPU_NXP_PXP
help
1: Add default bare metal and FreeRTOS interrupt handling
routines for PXP (lv_gpu_nxp_pxp_osa.c) and call
@ -251,10 +255,10 @@ menu "LVGL configuration"
bool "Use the functions and types from the older (v7) API if possible."
default y if !LV_CONF_MINIMAL
endmenu
menu "Image decoder and cache"
config LV_IMG_CF_INDEXED
bool "Enable indexed (pallete) images."
bool "Enable indexed (palette) images."
default y if !LV_CONF_MINIMAL
config LV_IMG_CF_ALPHA
bool "Enable alpha indexed images."
@ -280,19 +284,19 @@ menu "LVGL configuration"
menu "HAL Settings"
config LV_TICK_CUSTOM
bool
bool
prompt "Use a custom tick source"
config LV_TICK_CUSTOM_INCLUDE
string
prompt "Header for the system time function"
default Arduino.h
default "Arduino.h"
depends on LV_TICK_CUSTOM
config LV_TICK_CUSTOM_SYS_TIME_EXPR
string
prompt "Expression evaluating to current system time in ms"
default "(millis())"
default "millis()"
depends on LV_TICK_CUSTOM
endmenu
@ -308,13 +312,13 @@ menu "LVGL configuration"
config LV_LOG_LEVEL_TRACE
bool "Trace - Detailed information"
config LV_LOG_LEVEL_INFO
config LV_LOG_LEVEL_INFO
bool "Info - Log important events"
config LV_LOG_LEVEL_WARN
config LV_LOG_LEVEL_WARN
bool "Warn - Log if something unwanted happened"
config LV_LOG_LEVEL_ERROR
bool "Error - Only critical issues"
config LV_LOG_LEVEL_NONE
config LV_LOG_LEVEL_NONE
bool "None - Do not log anything"
endchoice
@ -330,15 +334,15 @@ menu "LVGL configuration"
config LV_LOG_PRINTF
bool "Print the log with 'printf'" if LV_USE_LOG
help
Use printf for log output.
Use printf for log output.
If not set the user needs to register a callback with `lv_log_register_print_cb`.
endmenu
menu "Debug Settings"
config LV_USE_DEBUG
bool "Enable Debug"
config LV_USE_ASSERT_NULL
bool "Check if the parameter is NULL. (Quite fast)"
default y if !LV_CONF_MINIMAL
@ -349,21 +353,21 @@ menu "LVGL configuration"
config LV_USE_ASSERT_MEM_INTEGRITY
bool "Check the integrity of `lv_mem` after critical operations. (Slow)"
config LV_USE_ASSERT_STR
bool "Search for NULL, very long strings, invalid characters, and unnatural repetitions. (Slow)"
help
help
If disabled `LV_USE_ASSERT_NULL` will be performed instead (if it's enabled).
config LV_USE_ASSERT_OBJ
bool "Check NULL, the object's type and existence (e.g. not deleted). (Quite slow)."
help
help
If disabled `LV_USE_ASSERT_NULL` will be performed instead (if it's enabled)
config LV_USE_ASSERT_STYLE
bool "Check if the styles are properly initialized. (Fast)"
endmenu
menu "Font usage"
config LV_FONT_FMT_TXT_LARGE
bool "Enable it if you have fonts with a lot of characters."
@ -372,13 +376,17 @@ menu "LVGL configuration"
but with > 10,000 characters if you see issues probably you
need to enable it.
config LV_USE_FONT_SUBPX
bool "Enable subpixel rendering."
config LV_FONT_SUBPX_BGR
bool "Use BGR instead RGB for sub-pixel rendering."
depends on LV_USE_FONT_SUBPX
help
Set the pixel order of the display.
Important only if "subpx fonts" are used.
With "normal" font it doesn't matter.
menu "Enable built-in fonts"
config LV_FONT_MONTSERRAT_8
bool "Enable Montserrat 8"
@ -527,7 +535,7 @@ menu "LVGL configuration"
bool "Simsun 16 CJK"
select LV_FONT_SIMSUN_16_CJK
endchoice
choice LV_FONT_DEFAULT_NORMAL
prompt "Select theme default normal font"
default LV_FONT_DEFAULT_NORMAL_MONTSERRAT_16 if !LV_CONF_MINIMAL
@ -617,7 +625,7 @@ menu "LVGL configuration"
bool "Simsun 16 CJK"
select LV_FONT_SIMSUN_16_CJK
endchoice
choice LV_FONT_DEFAULT_SUBTITLE
prompt "Select theme default subtitle font"
default LV_FONT_DEFAULT_SUBTITLE_MONTSERRAT_16 if !LV_CONF_MINIMAL
@ -707,7 +715,7 @@ menu "LVGL configuration"
bool "Simsun 16 CJK"
select LV_FONT_SIMSUN_16_CJK
endchoice
choice LV_FONT_DEFAULT_TITLE
prompt "Select theme default title font"
default LV_FONT_DEFAULT_TITLE_MONTSERRAT_16 if !LV_CONF_MINIMAL
@ -797,7 +805,7 @@ menu "LVGL configuration"
endmenu
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
bool "Empty: No theme, you can apply your styles as you need."
default y if LV_CONF_MINIMAL
@ -808,7 +816,7 @@ menu "LVGL configuration"
default y if !LV_CONF_MINIMAL
config LV_THEME_MONO
bool "Mono: Mono-color theme for monochrome displays"
endmenu
endmenu
choice LV_THEME_DEFAULT_INIT
prompt "Select theme default init"
@ -830,7 +838,7 @@ menu "LVGL configuration"
bool "Default init for mono theme"
select LV_THEME_MONO
endchoice
config LV_THEME_DEFAULT_COLOR_PRIMARY
hex "Select theme default primary color"
range 0x000000 0xFFFFFF
@ -849,7 +857,7 @@ menu "LVGL configuration"
choice LV_THEME_DEFAULT_FLAG
depends on LV_THEME_MATERIAL
prompt "Select theme default flag"
default LV_THEME_DEFAULT_FLAG_LIGHT
help
@ -857,10 +865,8 @@ menu "LVGL configuration"
config LV_THEME_DEFAULT_FLAG_LIGHT
bool "Light theme"
depends on LV_THEME_MATERIAL
config LV_THEME_DEFAULT_FLAG_DARK
bool "Dark theme"
depends on LV_THEME_MATERIAL
endchoice
endmenu
@ -882,39 +888,39 @@ menu "LVGL configuration"
config LV_TXT_BREAK_CHARS
string "Can break (wrap) texts on these chars"
default " ,.;:-_"
config LV_TXT_LINE_BREAK_LONG_LEN
int "Line break long length"
default 0
help
If a word is at least this long, will break wherever 'prettiest'.
If a word is at least this long, will break wherever 'prettiest'.
To disable, set to a value <= 0.
config LV_TXT_LINE_BREAK_LONG_PRE_MIN_LEN
int "Min num chars before break"
default 3
depends on LV_TXT_LINE_BREAK_LONG_LEN > 0
help
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
int "Min num chars after break"
default 3
depends on LV_TXT_LINE_BREAK_LONG_LEN > 0
help
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
string "The control character to use for signalling text recoloring"
default "#"
config LV_USE_BIDI
bool "Support bidirectional texts"
help
help
Allows mixing Left-to-Right and Right-to-Left texts.
The direction will be processed according to the Unicode Bidirectional Algorithm:
https://www.w3.org/International/articles/inline-bidi-markup/uba-basics
choice
prompt "Set the default BIDI direction"
default LV_BIDI_DIR_AUTO
@ -930,7 +936,7 @@ menu "LVGL configuration"
config LV_USE_ARABIC_PERSIAN_CHARS
bool "Enable Arabic/Persian processing"
help
help
In these languages characters should be replaced with
an other form based on their position in the text.
@ -938,14 +944,14 @@ menu "LVGL configuration"
bool "Change the built-in (v)snprintf functions"
config LV_SPRINTF_DISABLE_FLOAT
bool "Disable float in built-in (v)snprintf functions" if !LV_SPRINTF_CUSTOM
bool "Disable float in built-in (v)snprintf functions" if !LV_SPRINTF_CUSTOM
endmenu
menu "Widgets"
config LV_USE_OBJ_REALIGN
bool "Enable `lv_obj_realign()` based on `lv_obj_align()` parameters."
default y if !LV_CONF_MINIMAL
choice
prompt "Enable to make the object clickable on a larger area."
default LV_USE_EXT_CLICK_AREA_TINY
@ -976,6 +982,7 @@ menu "LVGL configuration"
default y if !LV_CONF_MINIMAL
config LV_CALENDAR_WEEK_STARTS_MONDAY
bool "Calendar week starts monday."
depends on LV_USE_CALENDAR
config LV_USE_CANVAS
bool "Canvas. Dependencies: lv_img."
select LV_USE_IMG
@ -1005,7 +1012,7 @@ menu "LVGL configuration"
default y if !LV_CONF_MINIMAL
config LV_DROPDOWN_DEF_ANIM_TIME
int "Drop down animation time. 0: no animation."
depends on LV_USE_DROPBOX
depends on LV_USE_DROPDOWN
default 200
config LV_USE_GAUGE
bool "Gauge. Dependencies: lv_bar, lv_linemeter."
@ -1033,13 +1040,17 @@ menu "LVGL configuration"
config LV_LABEL_DEF_SCROLL_SPEED
int "Hor. or ver. scroll speed [px/sec] in LV_LABEL_LONG_ROLL/ROLL_CIRC mode."
default 25
depends on LV_USE_LABEL
config LV_LABEL_WAIT_CHAR_COUNT
int "Waiting period at beginning/end of animation cycle."
default 3
depends on LV_USE_LABEL
config LV_LABEL_TEXT_SEL
bool "Enable selecting text of the label."
depends on LV_USE_LABEL
config LV_LABEL_LONG_TXT_HINT
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
bool "LED."
default y if !LV_CONF_MINIMAL
@ -1047,10 +1058,12 @@ menu "LVGL configuration"
int "LED minimal brightness."
range 0 255
default 120
depends on LV_USE_LED
config LV_LED_BRIGHT_MAX
int "LED maximal brightness."
range 0 255
default 255
depends on LV_USE_LED
config LV_USE_LINE
bool "Line."
default y if !LV_CONF_MINIMAL
@ -1064,12 +1077,14 @@ menu "LVGL configuration"
config LV_LIST_DEF_ANIM_TIME
int "List default animation time of focusing to a list element [ms]. 0: no animation."
default 100
depends on LV_USE_LIST
config LV_USE_LINEMETER
bool "Line meter."
default y if !LV_CONF_MINIMAL
choice
prompt "Draw line more precisely at cost of performance."
default LV_LINEMETER_PRECISE_NO_EXTRA_PRECISION
depends on LV_USE_LINEMETER
config LV_LINEMETER_PRECISE_NO_EXTRA_PRECISION
bool "0: No extra precision."
config LV_LINEMETER_PRECISE_SOME_EXTRA_PRECISION
@ -1093,6 +1108,7 @@ menu "LVGL configuration"
config LV_PAGE_DEF_ANIM_TIME
int "Focus default animation time [ms]. 0: No animation."
default 100
depends on LV_USE_PAGE
config LV_USE_SPINNER
bool "Spinner. Dependencies: lv_arc, lv_anim."
select LV_USE_ARC
@ -1101,12 +1117,15 @@ menu "LVGL configuration"
config LV_SPINNER_DEF_ARC_LENGTH
int "Spinner def. arc length [deg]."
default 60
depends on LV_USE_SPINNER
config LV_SPINNER_DEF_SPIN_TIME
int "Spinner def. spin time [ms]."
default 1000
depends on LV_USE_SPINNER
choice
prompt "Type of spinner (animation type)."
default LV_SPINNER_TYPE_SPINNING_ARC
depends on LV_USE_SPINNER
config LV_SPINNER_TYPE_SPINNING_ARC
bool "0: Spinner type spinning arc."
config LV_SPINNER_TYPE_FILLSPIN_ARC
@ -1121,9 +1140,11 @@ menu "LVGL configuration"
config LV_ROLLER_DEF_ANIM_TIME
int "Focus animation time [ms]. 0: no animation."
default 200
depends on LV_USE_ROLLER
config LV_ROLLER_INF_PAGES
int "Number of extra 'pages' when the controller is infinite."
default 7
depends on LV_USE_ROLLER
config LV_USE_SLIDER
bool "Slider. Dependencies: lv_bar."
select LV_USE_BAR
@ -1144,9 +1165,11 @@ menu "LVGL configuration"
config LV_TEXTAREA_DEF_CURSOR_BLINK_TIME
int "Text area def. cursor blink time [ms]."
default 400
depends on LV_USE_TEXTAREA
config LV_TEXTAREA_DEF_PWN_SHOW_TIME
int "Text area def. pwn show time [ms]."
default 1500
depends on LV_USE_TEXTAREA
config LV_USE_TABLE
bool "Table. Dependencies: lv_label."
select LV_USE_LABEL
@ -1154,9 +1177,11 @@ menu "LVGL configuration"
config LV_TABLE_COL_MAX
int "Table col max."
default 12
depends on LV_USE_TABLE
config LV_TABLE_CELL_STYLE_CNT
int "Table cell style count."
default 4
depends on LV_USE_TABLE
config LV_USE_TABVIEW
bool "Tab. Dependencies: lv_page, lv_btnm."
select LV_USE_PAGE
@ -1165,6 +1190,7 @@ menu "LVGL configuration"
config LV_TABVIEW_DEF_ANIM_TIME
int "Time of slide animation [ms]. 0: No animation."
default 300
depends on LV_USE_TABVIEW
config LV_USE_TILEVIEW
bool "Tileview. Dependencies: lv_page."
select LV_USE_PAGE
@ -1172,6 +1198,7 @@ menu "LVGL configuration"
config LV_TILEVIEW_DEF_ANIM_TIME
int "Time of slide animation [ms]. 0: No animation."
default 300
depends on LV_USE_TILEVIEW
config LV_USE_WIN
bool "Window. Dependencies: lv_cont, lv_btn, lv_label, lv_img, lv_page."
select LV_USE_CONT

View File

@ -1,18 +1,18 @@
<h1 align="center"> LVGL - Light and Versatile Graphics Library</h1>
<h1 align="center"> LVGL - Light and Versatile Graphics Library</h1>
<p align="center">
<img src="https://lvgl.io/assets/images/img_1.png">
</p>
<p align="center">
LVGL provides everything you need to create embedded GUI with easy-to-use graphical elements, beautiful visual effects and low memory footprint.
LVGL provides everything you need to create embedded GUI with easy-to-use graphical elements, beautiful visual effects and low memory footprint.
</p>
<h4 align="center">
<a href="https://lvgl.io">Website </a> &middot;
<a href="https://lvgl.io/demos">Online demo</a> &middot;
<a href="https://lvgl.github.io/lv_examples/">Nightly demos</a> &middot;
<a href="https://docs.lvgl.io/">Docs</a> &middot;
<a href="https://lvgl.io">Website </a> &middot;
<a href="https://lvgl.io/demos">Online demo</a> &middot;
<a href="https://lvgl.github.io/lv_examples/">Nightly demos</a> &middot;
<a href="https://docs.lvgl.io/">Docs</a> &middot;
<a href="https://forum.lvgl.io">Forum</a>
</h4>
@ -53,37 +53,37 @@ Basically, every modern controller (which is able to drive a display) is suitabl
<td> &gt; 16 MHz </td>
<td> &gt; 48 MHz</td>
</tr>
<tr>
<td> <strong>Flash/ROM</strong></td>
<td> &gt; 64 kB </td>
<td> &gt; 180 kB</td>
</tr>
<tr>
<td> <strong>Static RAM</strong></td>
<td> &gt; 2 kB </td>
<td> &gt; 4 kB</td>
</tr>
<tr>
<td> <strong>Stack</strong></td>
<td> &gt; 2 kB </td>
<td> &gt; 8 kB</td>
</tr>
<tr>
<td> <strong>Heap</strong></td>
<td> &gt; 2 kB </td>
<td> &gt; 8 kB</td>
</tr>
<tr>
<td> <strong>Display buffer</strong></td>
<td> &gt; 1 &times; <em>hor. res.</em> pixels </td>
<td> &gt; 10 &times; <em>hor. res.</em> pixels </td>
</tr>
<tr>
<td> <strong>Compiler</strong></td>
<td colspan="2"> C99 or newer </td>
@ -114,9 +114,9 @@ This list shows the recommended way of learning the library:
7. Read the [Overview](https://docs.lvgl.io/latest/en/html/overview/index.html) page to get a better understanding of the library (2-3 hours)
8. Check the documentation of the [Widgets](https://docs.lvgl.io/latest/en/html/widgets/index.html) to see their features and usage
9. If you have questions go to the [Forum](http://forum.lvgl.io/)
10. Read the [Contributing](https://docs.lvgl.io/latest/en/html/contributing/index.html) guide to see how you can help to improve LVGL (15 minutes)
10. Read the [Contributing](https://docs.lvgl.io/latest/en/html/contributing/index.html) guide to see how you can help to improve LVGL (15 minutes)
## Examples
## Examples
For more examples see the [lv_examples](https://github.com/lvgl/lv_examples) repository.

View File

@ -11,19 +11,19 @@ Use [lv_misc/lv_templ.c](https://github.com/lvgl/lvgl/blob/master/src/lv_misc/lv
* starts with *lv*
* followed by module name: *btn*, *label*, *style* etc.
* followed by the action (for functions): *set*, *get*, *refr* etc.
* closed with the subject: *name*, *size*, *state* etc.
* closed with the subject: *name*, *size*, *state* etc.
* Typedefs
* prefer `typedef struct` and `typedef enum` instead of `struct name` and `enum name`
* always end `typedef struct` and `typedef enum` type names with `_t`
* Abbreviations:
* Only words longer or equal than 6 characters can be abbreviated.
* Only words longer or equal than 6 characters can be abbreviated.
* Abbreviate only if it makes the word at least half as long
* Use only very straightforward and well-known abbreviations (e.g. pos: position, def: default, btn: button)
* Use only very straightforward and well-known abbreviations (e.g. pos: position, def: default, btn: button)
## Coding guide
* Functions:
* Try to write function shorter than is 50 lines
* Always shorter than 200 lines (except very straightforwards)
* Try to write function shorter than is 50 lines
* Always shorter than 200 lines (except very straightforwards)
* Variables:
* One line, one declaration (BAD: char x, y;)
* Use `<stdint.h>` (*uint8_t*, *int32_t* etc)
@ -41,16 +41,16 @@ Before every function have a comment like this:
* @param obj pointer to an object
* @return pointer to a screen
*/
lv_obj_t * lv_obj_get_scr(lv_obj_t * obj);
lv_obj_t * lv_obj_get_scr(lv_obj_t * obj);
```
Always use `/* Something */` format and NOT `//Something`
Write readable code to avoid descriptive comments like:
`x++; /* Add 1 to x */`.
Write readable code to avoid descriptive comments like:
`x++; /* Add 1 to x */`.
The code should show clearly what you are doing.
You should write **why** have you done this:
You should write **why** have you done this:
`x++; /*Because of closing '\0' of the string */`
Short "code summaries" of a few lines are accepted. E.g. `/*Calculate the new coordinates*/`
@ -67,19 +67,19 @@ Here is example to show bracket placing and using of white spaces:
*/
void lv_label_set_text(lv_obj_t * label, const char * text)
{ /* Main brackets of functions in new line*/
if(label == NULL) return; /*No bracket only if the command is inline with the if statement*/
lv_obj_inv(label);
lv_label_ext_t * ext = lv_obj_get_ext(label);
/*Comment before a section */
if(text == ext->txt || text == NULL) { /*Bracket of statements start inline*/
lv_label_refr_text(label);
return;
return;
}
...
}
```

View File

@ -1,5 +1,5 @@
# Contributing to LVGL
Thank you for considering contributing to LVGL.
Thank you for considering contributing to LVGL.
For a detailed description of contribution opportunities, please visit the [Contributing](https://docs.lvgl.io/latest/en/html/contributing/index.html) section of the documentation.

View File

@ -1,6 +1,6 @@
# Roadmap
This is a summary for thenew fatures of the major releases and a collection of ideas.
This is a summary for thenew fatures of the major releases and a collection of ideas.
This list indicates only the current intention and can be changed.
@ -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
- Work in progress
- Remove the align parameter from `lv_canvas_draw_text`
- Remove the copy paramter from create functions
- Style selectors and style-based states See [#1832](https://github.com/lvgl/lvgl/issues/1832)
- Add Object Orianted system [#1919](https://github.com/lvgl/lvgl/issues/1919)
## v8.1
- Add radio button widget
- Make the copy parameter obsolate in create functions
- Optimize and simplifie styles [#1832](https://github.com/lvgl/lvgl/issues/1832)
- Use a more generic inheritenace [#1919](https://github.com/lvgl/lvgl/issues/1919)
## v8.x
- Add radio button widget
- Unit testing (gtest?). See [#1658](https://github.com/lvgl/lvgl/issues/1658)
- 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
- Simplify `group`s. Discussion is [here](https://forum.lvgl.io/t/lv-group-tabindex/2927/3).
- 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))
- 9-patch support for `lv_imgbtn`.
- Handle stride. See [#1858](https://github.com/lvgl/lvgl/issues/1858)
- Make gradients more versatile
- Make image transformations more versatile
- Allow snapshoting object to tranfrom them as images
## v10
- Remove property level states
- Allow snapshoting object to tranfrom them to images
## Ideas
- Use [generate-changelog](https://github.com/lob/generate-changelog) to automatically generate changelog
- lv_mem_alloc_aligned(size, align)
- 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)
- Optmize font decompression
- Optimize font decompression
- Switch to RGBA colors in styles
- 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
- Add new label alignment modes. [#1656](https://github.com/lvgl/lvgl/issues/1656)
- Support larger images: [#1892](https://github.com/lvgl/lvgl/issues/1892)

View File

@ -55,20 +55,20 @@ void lv_port_disp_init(void)
*----------------------------*/
/* 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
*
* There are three buffering configurations:
* 1. Create ONE buffer with some rows:
* 1. Create ONE buffer with some rows:
* LVGL will draw the display's content here and writes it to your display
*
* 2. Create TWO buffer with some rows:
*
* 2. Create TWO buffer with some rows:
* LVGL will draw the display's content to a buffer and writes it your display.
* You should use DMA to write the buffer's content to the display.
* It will enable LVGL to draw the next part of the screen to the other buffer while
* the data is being sent form the first buffer. It makes rendering and flushing parallel.
*
* 3. Create TWO screen-sized buffer:
*
* 3. Create TWO screen-sized buffer:
* Similar to 2) but the buffer have to be screen sized. When LVGL is ready it will give the
* whole frame to display. This way you only need to change the frame buffer's address instead of
* copying the pixels.
@ -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*/
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
*----------------------------------*/
@ -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);
}
/*OPTIONAL: GPU INTERFACE*/
#if LV_USE_GPU

View File

@ -34,7 +34,6 @@ extern "C" {
* MACROS
**********************/
#ifdef __cplusplus
} /* extern "C" */
#endif

View File

@ -36,7 +36,6 @@ typedef struct {
uint32_t dummy2;
}dir_t;
/**********************
* STATIC PROTOTYPES
**********************/
@ -81,7 +80,7 @@ void lv_port_fs_init(void)
fs_init();
/*---------------------------------------------------
* Register the file system interface in LVGL
* Register the file system interface in LVGL
*--------------------------------------------------*/
/* Add a simple drive to open images */
@ -118,7 +117,7 @@ void lv_port_fs_init(void)
/* Initialize your Storage device and File system. */
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*/
}
@ -157,7 +156,6 @@ static lv_fs_res_t fs_open (lv_fs_drv_t * drv, void * file_p, const char * path,
return res;
}
/**
* Close an opened file
* @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
* @param drv pointer to a driver where this function belongs
* @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)
{

View File

@ -34,7 +34,6 @@ extern "C" {
* MACROS
**********************/
#ifdef __cplusplus
} /* extern "C" */
#endif

View File

@ -79,7 +79,6 @@ void lv_port_indev_init(void)
* You should shape them according to your hardware
*/
lv_indev_drv_t indev_drv;
/*------------------
@ -174,8 +173,6 @@ void lv_port_indev_init(void)
* STATIC FUNCTIONS
**********************/
/*------------------
* Touchpad
* -----------------*/
@ -225,7 +222,6 @@ static void touchpad_get_xy(lv_coord_t * x, lv_coord_t * y)
(*y) = 0;
}
/*------------------
* Mouse
* -----------------*/
@ -361,7 +357,6 @@ static void encoder_handler(void)
encoder_state = LV_INDEV_STATE_REL;
}
/*------------------
* Button
* -----------------*/

View File

@ -35,7 +35,6 @@ extern "C" {
* MACROS
**********************/
#ifdef __cplusplus
} /* extern "C" */
#endif

View File

@ -1,6 +1,6 @@
{
"name": "lvgl",
"version": "8.0.0",
"version": "8.0.0",
"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": {

View File

@ -1,10 +1,6 @@
/**
* @file lv_conf.h
<<<<<<< HEAD
* 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 */
#define LV_INDEV_DEF_LONG_PRESS_REP_TIME 100
/* Gesture threshold in pixels */
#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
#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
*==================*/

24
lvgl.h
View File

@ -10,7 +10,6 @@
extern "C" {
#endif
/***************************
* 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)))
/**
* 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
}

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_draw/lv_draw.mk
include $(LVGL_DIR)/$(LVGL_DIR_NAME)/src/lv_gpu/lv_gpu.mk

View File

@ -7,40 +7,40 @@ import sys
parser = argparse.ArgumentParser(description="""Create fonts for LittelvGL including the built-in symbols. lv_font_conv needs to be installed. See https://github.com/littlevgl/lv_font_conv
Example: python built_in_font_gen.py --size 16 -o lv_font_roboto_16.c --bpp 4 -r 0x20-0x7F""", formatter_class=RawTextHelpFormatter)
parser.add_argument('-s', '--size',
type=int,
metavar = 'px',
nargs='?',
parser.add_argument('-s', '--size',
type=int,
metavar = 'px',
nargs='?',
help='Size of the font in px')
parser.add_argument('--bpp',
type=int,
metavar = '1,2,4',
nargs='?',
parser.add_argument('--bpp',
type=int,
metavar = '1,2,4',
nargs='?',
help='Bit per pixel')
parser.add_argument('-r', '--range',
nargs='+',
metavar = 'start-end',
default=['0x20-0x7F,0xB0,0x2022'],
parser.add_argument('-r', '--range',
nargs='+',
metavar = 'start-end',
default=['0x20-0x7F,0xB0,0x2022'],
help='Ranges and/or characters to include. Default is 0x20-7F (ASCII). E.g. -r 0x20-0x7F, 0x200, 324')
parser.add_argument('--symbols',
nargs='+',
metavar = 'sym',
parser.add_argument('--symbols',
nargs='+',
metavar = 'sym',
default=[''],
help=u'Symbols to include. E.g. -s ÁÉŐ'.encode('utf-8'))
parser.add_argument('--font',
metavar = 'file',
nargs='?',
default='Montserrat-Medium.ttf',
parser.add_argument('--font',
metavar = 'file',
nargs='?',
default='Montserrat-Medium.ttf',
help='A TTF or WOFF file')
parser.add_argument('-o', '--output',
nargs='?',
metavar='file',
parser.add_argument('-o', '--output',
nargs='?',
metavar='file',
help='Output file name. E.g. my_font_20.c')
parser.add_argument('--compressed', action='store_true',
help='Compress the bitmaps')
parser.add_argument('--subpx', action='store_true',
help='3 times wider letters for sub pixel rendering')
args = parser.parse_args()
if args.compressed == False:

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")
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')

View File

@ -23,7 +23,7 @@
--suffix=none
--preserve-date
--formatted
--exclude=lv_conf_internal.h
--exclude=lv_conf_internal.h
--exclude=../src/lv_font/lv_font_montserrat_12.c
--exclude=../src/lv_font/lv_font_montserrat_14.c
--exclude=../src/lv_font/lv_font_montserrat_16.c
@ -47,4 +47,3 @@
--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_dejavu_16_persian_hebrew.c

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

View File

@ -1,10 +1,9 @@
# https://github.com/facebook/infer
#
# Install:
# Install:
# VERSION=0.17.0; \
# curl -sSL "https://github.com/facebook/infer/releases/download/v$VERSION/infer-linux64-v$VERSION.tar.xz" \
# | sudo tar -C /opt -xJ && \
# sudoln -s "/opt/infer-linux64-v$VERSION/bin/infer" /usr/local/bin/infer
infer run -- make -j8

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
'''
import sys
import re
@ -15,7 +14,6 @@ if sys.version_info < (3,6,0):
fin = open("../lv_conf_template.h", "r")
fout = open("../src/lv_conf_internal.h", "w")
fout.write(
'''/**
* GENERATED FILE, DO NOT EDIT IT!
@ -82,7 +80,7 @@ for i in fin.read().splitlines():
if '/*--END OF LV_CONF_H--*/' in i: break
r = re.search(r'^ *# *define ([^\s]+).*$', i)
#ifndef LV_USE_BTN /*Only if not defined in lv_conf.h*/
# ifdef CONFIG_LV_USE_BTN /*Use KConfig value if set*/
# define LV_USE_BTN CONFIG_LV_USE_BTN
@ -90,17 +88,16 @@ for i in fin.read().splitlines():
# define LV_USE_BTN 1 /*Use default value*/
# endif
#endif
if r:
line = re.sub('\(.*?\)', '', r[1], 1) #remove parentheses from macros
dr = re.sub('.*# *define', '', i, 1)
d = "# define " + dr
fout.write(
f'#ifndef {line}\n'
f'# ifdef CONFIG_{line}\n'
f'# define {line} CONFIG_{line}\n'
f'# ifdef CONFIG_{line.upper()}\n'
f'# define {line} CONFIG_{line.upper()}\n'
f'# else\n'
f'{d}\n'
f'# endif\n'
@ -111,7 +108,6 @@ for i in fin.read().splitlines():
else:
fout.write(f'{i}\n')
fout.write(
'''

View File

@ -10,32 +10,32 @@ import com
def cmd(c, ask_on_err = True):
print("\n" + c)
r = os.system(c)
r = os.system(c)
if r:
print("### Error: " + str(r))
if ask_on_err:
input("Press Enter to continue exectution...")
def define_set(fn, name, value):
if ask_on_err:
input("Press Enter to continue execution...")
def define_set(fn, name, value):
print("In " + fn + " set " + name + " to " + value)
new_content = ""
new_content = ""
s = r'^ *# *define +' + str(name).rstrip() + ' +'
f = open(fn, "r")
for i in f.read().splitlines():
r = re.search(s, i)
if r:
if r:
d = i.split("define")
i = d[0] + "define " + name + " " + value
i = d[0] + "define " + name + " " + value
new_content += i + '\n'
f.close()
f = open(fn, "w")
f.write(new_content)
f.close()
def ver_format(ver):
s = "v" + str(ver[0]) + "." + str(ver[1]) + "." + str(ver[2])
if(ver[3] != ""): s = s + "-" + ver[3]
@ -43,69 +43,68 @@ def ver_format(ver):
def get_lvgl_version(br):
print("Get LVGL's version")
ver = [0, 0, 0, ""]
ver = [0, 0, 0, ""]
os.chdir("./lvgl")
com.cmd("git checkout " + br)
f = open("./lvgl.h", "r")
lastNum = re.compile(r'(?:[^\d]*(\d+)[^\d]*)+')
for i in f.read().splitlines():
r = re.search(r'^#define LVGL_VERSION_MAJOR ', i)
if r:
if r:
m = lastNum.search(i)
if m: ver[0] = m.group(1)
r = re.search(r'^#define LVGL_VERSION_MINOR ', i)
if r:
if r:
m = lastNum.search(i)
if m: ver[1] = m.group(1)
r = re.search(r'^#define LVGL_VERSION_PATCH ', i)
if r:
if r:
m = lastNum.search(i)
if m: ver[2] = m.group(1)
f.close()
com.cmd("git checkout master")
os.chdir("../")
return ver
def push(c):
cmd("git push " + c)
def update_version(ver):
ver_str = ver_format(ver)
ver_num = ver[0] + "." + ver[1] + "." + ver[2]
templ = fnmatch.filter(os.listdir('.'), '*_templ*.h')
if len(templ) > 0 and templ[0]:
print("Updating version in " + templ[0])
cmd("sed -i -r 's/v[0-9]+\.[0-9]+\.[0-9]+.*/"+ "v" + ver_num + "/' " + templ[0])
if os.path.exists("library.json"):
if os.path.exists("library.json"):
print("Updating version in library.json")
cmd("sed -i -r 's/[0-9]+\.[0-9]+\.[0-9]+/"+ ver_num +"/' library.json")
if path.exists("library.properties"):
if path.exists("library.properties"):
print("Updating version in library.properties")
cmd("sed -i -r 's/version=[0-9]+\.[0-9]+\.[0-9]+/"+ "version=" + ver_num + "/' library.properties")
if path.exists("conf.py"):
cmd("sed -i -r \"s/'v[0-9]+\.[0-9]+\.[0-9]+.*'/\'" + ver_str + "'/\" conf.py")
if path.exists("conf.py"):
cmd("sed -i -r \"s/'v[0-9]+\.[0-9]+\.[0-9]+.*'/\'" + ver_str + "'/\" conf.py")
if path.exists("Kconfig"):
cmd("sed -i -r \"s/'v[0-9]+\.[0-9]+\.[0-9]+.*'/\'" + ver_str + "'/\" Kconfig")
if path.exists("lvgl.h"):
if path.exists("lvgl.h"):
define_set("./lvgl.h", "LVGL_VERSION_MAJOR", str(ver[0]))
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_INFO", "\"" + ver[3] + "\"")

View File

@ -15,7 +15,7 @@ def lvgl_update_ver(ver, br):
com.cmd("git commit -am 'Update " + br + " version'")
com.push("origin " + br)
com.cmd("git checkout master")
os.chdir("../")
def docs_update_ver(ver, br):
@ -25,10 +25,9 @@ def docs_update_ver(ver, br):
com.cmd("git commit -am 'Update " + br + " version'")
com.push("origin " + br)
com.cmd("git checkout master --")
os.chdir("../")
def merge_dev_to_master():
os.chdir("./lvgl")
com.cmd("git checkout master")
@ -42,8 +41,7 @@ def merge_dev_to_master():
com.cmd("git merge dev -X theirs --no-edit;")
com.push("origin latest")
os.chdir("../")
def make(mode):
if(mode == "bugfix"):
ver = com.get_lvgl_version("master")
@ -58,14 +56,14 @@ def make(mode):
if(mode == "major"):
ver[0] = str(int(ver[0]) + 1)
ver[1] = '0'
ver[2] = '0'
ver[2] = '0'
if(mode == "minor"):
ver[1] = str(int(ver[1]) + 1)
ver[2] = '0'
ver[2] = '0'
lvgl_update_ver(ver, "dev")
docs_update_ver(ver, "dev")
if __name__ == '__main__':
if(len(sys.argv) != 2):
print("Missing argument. Usage ./dev.py major | minor | bugfix")

View File

@ -15,7 +15,7 @@ proj_list = [ "lv_sim_eclipse_sdl", "lv_sim_emscripten"]
def upstream(repo):
return upstream_org_url + repo + ".git"
def clone(repo):
com.cmd("git clone --recurse-submodules " + upstream(repo))
os.chdir("./" + repo)
@ -23,7 +23,7 @@ def clone(repo):
com.cmd("git remote update origin --prune")
com.cmd("git pull origin --tags")
os.chdir("..")
def clone_repos():
com.cmd("rm -fr " + workdir)
com.cmd("mkdir " + workdir)
@ -36,30 +36,30 @@ def clone_repos():
for p in proj_list:
clone(p)
def cleanup():
os.chdir("../")
com.cmd("rm -fr " + workdir)
if __name__ == '__main__':
prepare_type = ['major', 'minor', 'bugfix']
dev_prepare = 'minor'
dev_prepare = 'minor'
# if(len(sys.argv) != 2):
# print("Missing argument. Usage ./release.py bugfix | minor | major")
# print("Use minor by deafult")
# else:
# print("Use minor by default")
# else:
# dev_prepare = sys.argv[1]
if not (dev_prepare in prepare_type):
print("Invalid argument. Usage ./release.py bugfix | minor | major")
if not (dev_prepare in prepare_type):
print("Invalid argument. Usage ./release.py bugfix | minor | major")
exit(1)
#os.chdir(workdir)
clone_repos()
release.make()
for p in proj_list:
proj.make(p, True)
dev.make(dev_prepare)
dev.make(dev_prepare)
#cleanup()

View File

@ -7,43 +7,41 @@ import re
import subprocess
import com
def make(repo_path, auto_push = False):
os.chdir("./" + repo_path)
com.cmd('git checkout master')
print("Upadte lvgl");
print("Update lvgl");
os.chdir("./lvgl")
com.cmd("git checkout master")
com.cmd("git pull origin --tags")
out = subprocess.Popen(['git', 'tag', '--sort=-creatordate'],
stdout=subprocess.PIPE,
out = subprocess.Popen(['git', 'tag', '--sort=-creatordate'],
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
stdout,stderr = out.communicate()
ver_str = stdout.decode("utf-8").split('\n')[0]
release_br = ver_str[1:] #trim "v"
release_br = release_br.split('.')[0] # get the first number
release_br = "release/v" + release_br
com.cmd("git checkout " + release_br + "; git pull origin " + release_br)
os.chdir("..")
com.cmd("cp -f lvgl/lv_conf_template.h lv_conf.h")
com.cmd("sed -i -r 's/#if 0/#if 1/' lv_conf.h") # Enable lv_conf.h
with open("confdef.txt") as f:
for line in f:
(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"):
print("Upadte lv_examples");
if os.path.exists("lv_examples"):
print("Update lv_examples");
com.cmd("cd lv_examples; git co " + release_br + "; git pull origin " + release_br)
if os.path.exists("lv_drivers"):
print("upadte lv_drivers");
if os.path.exists("lv_drivers"):
print("update lv_drivers");
com.cmd("cd lv_drivers " + release_br + "; git pull origin " + release_br)
msg = 'Update to ' + ver_str
@ -53,7 +51,7 @@ def make(repo_path, auto_push = False):
if auto_push:
com.push("origin --tags")
com.push("origin master")
os.chdir("../")
if __name__ == '__main__':

View File

@ -8,21 +8,21 @@ import com
import re
def update_release_branch(release_br, master_br = "master"):
com.cmd("git checkout " + release_br)
com.cmd("git pull origin " + release_br)
com.cmd("git merge "+ master_br +" -X ours");
com.push("origin " + release_br);
com.cmd("git checkout master");
com.cmd("git checkout " + release_br)
com.cmd("git pull origin " + release_br)
com.cmd("git merge "+ master_br +" -X ours");
com.push("origin " + release_br);
com.cmd("git checkout master");
def lvgl_release(ver):
print("Release lvgl")
ver_str = com.ver_format(ver)
release_br = "release/v" + str(ver[0])
os.chdir("./lvgl")
com.define_set("./lvgl.h", "LVGL_VERSION_INFO", '\"\"')
# Run some scripts
os.chdir("./scripts")
com.cmd("./code-format.sh")
@ -35,132 +35,132 @@ def lvgl_release(ver):
#update CHANGLELOG
new_content = ""
f = open("./CHANGELOG.md", "r")
release_note = ""
note_state = 0
note_state = 0
for i in f.read().splitlines():
if note_state == 0:
r = re.search(r'^## ' + ver_str, i)
if r:
i = i.replace("planned on ", "")
if r:
i = i.replace("planned on ", "")
note_state+=1
elif note_state == 1:
elif note_state == 1:
r = re.search(r'^## ', i)
if r:
note_state+=1
else:
release_note += i + '\n'
new_content += i + '\n'
f.close()
f = open("./CHANGELOG.md", "w")
f.write(new_content)
f.close()
com.cmd('git commit -am "Release ' + ver_str + '"')
com.cmd('git checkout dev')
com.cmd("git merge master -X ours")
com.cmd("git add .")
com.cmd("git commit -am 'Merge master'", False)
com.push('origin dev')
com.cmd('git checkout master')
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 --tags')
update_release_branch(release_br)
os.chdir("../")
return release_note
def lv_examples_release(ver):
print("Release lv_examples")
os.chdir("./lv_examples")
release_br = "release/v" + str(ver[0])
ver_str = com.ver_format(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 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 --tags')
update_release_branch(release_br)
os.chdir("../")
def lv_drivers_release(ver):
print("Release lv_drivers")
os.chdir("./lv_drivers")
release_br = "release/v" + str(ver[0])
ver_str = com.ver_format(ver)
com.update_version(ver)
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 --tags')
update_release_branch(release_br)
os.chdir("../")
def docs_release(ver):
print("Release docs")
os.chdir("./docs")
release_br = "release/v" + str(ver[0])
ver_str = com.ver_format(ver)
com.cmd("git co latest --")
com.cmd("rm -rf xml");
com.cmd("cp -r ../lvgl/docs/api_doc/xml .");
com.cmd("git co latest --")
com.cmd("rm -rf xml");
com.cmd("cp -r ../lvgl/docs/api_doc/xml .");
com.cmd("git add xml");
com.update_version(ver)
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 --tags')
update_release_branch(release_br, "latest")
os.chdir("../")
def blog_release(ver, release_note):
os.chdir("./blog/_posts")
ver_str = com.ver_format(ver)
post = "---\nlayout: post\ntitle: " + ver_str + " is released\nauthor: \"kisvegabor\"\ncover: /assets/release_cover.png\n---\n\n"
post += release_note
today = date.today()
d = today.strftime("%Y-%m-%d")
f = open(d + "-release_" + ver_str + ".md", "w")
f.write(post)
f.close()
com.cmd("git add .")
com.cmd("git commit -am 'Add " + ver_str + " release post'")
com.push('origin master')
os.chdir("../../")
def make():
ver = com.get_lvgl_version("master")
release_note = lvgl_release(ver)
@ -168,6 +168,6 @@ def make():
lv_drivers_release(ver)
docs_release(ver)
blog_release(ver, release_note)
if __name__ == '__main__':
make()

View File

@ -349,7 +349,6 @@
# endif
#endif
/* Gesture threshold in pixels */
#ifndef 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)
* 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.
* LV_IMG_CACHE_DEF_SIZE must be >= 1 */
* Set it to 0 to disable caching */
#ifndef LV_IMG_CACHE_DEF_SIZE
# ifdef 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
#ifndef lv_snprintf
# ifdef CONFIG_lv_snprintf
# define lv_snprintf CONFIG_lv_snprintf
# ifdef CONFIG_LV_SNPRINTF
# define lv_snprintf CONFIG_LV_SNPRINTF
# else
# define lv_snprintf snprintf
# endif
#endif
#ifndef lv_vsnprintf
# ifdef CONFIG_lv_vsnprintf
# define lv_vsnprintf CONFIG_lv_vsnprintf
# ifdef CONFIG_LV_VSNPRINTF
# define lv_vsnprintf CONFIG_LV_VSNPRINTF
# else
# define lv_vsnprintf vsnprintf
# endif

View File

@ -30,8 +30,8 @@ extern "C" {
*******************/
#ifndef LV_MEM_SIZE
#if defined (CONFIG_LV_MEM_SIZE_BYTES)
#define CONFIG_LV_MEM_SIZE (CONFIG_LV_MEM_SIZE_BYTES * 1024U)
#if defined (CONFIG_LV_MEM_SIZE_KILOBYTES)
#define CONFIG_LV_MEM_SIZE (CONFIG_LV_MEM_SIZE_KILOBYTES * 1024U)
#endif
#endif
@ -337,9 +337,9 @@ extern "C" {
*-----------------*/
#ifndef LV_TEXT_ENC
#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
#define CONFIG_LV_TXT_ENC LV_TXT_ENC_ASCII
#define CONFIG_LV_TXT_ENC LV_TXT_ENC_ASCII
#endif
#endif
@ -363,11 +363,11 @@ extern "C" {
#ifndef LV_USE_EXT_CLICK_AREA
#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
#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
#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
@ -385,7 +385,6 @@ extern "C" {
#endif
#endif
/*------------------
* SPINNER DEF ANIM
*-----------------*/
@ -400,6 +399,20 @@ extern "C" {
#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
} /* extern "C" */
#endif

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

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);
}
/**
* Opacity of the background
* @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_obj_t * act_scr = lv_scr_act();
if(d->del_prev && act_scr != d->scr_to_load) {
if(d->del_prev && act_scr != d->scr_to_load && d->scr_to_load) {
lv_obj_del(act_scr);
lv_disp_load_scr(d->scr_to_load);
lv_anim_del(d->scr_to_load, NULL);

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())
#endif
/**
* 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

View File

@ -13,10 +13,6 @@
#include "../lv_themes/lv_theme.h"
#include "../lv_misc/lv_gc.h"
#if defined(LV_GC_INCLUDE)
#include LV_GC_INCLUDE
#endif /* LV_ENABLE_GC */
/*********************
* DEFINES
*********************/
@ -84,7 +80,7 @@ lv_group_t * lv_group_create(void)
*/
void lv_group_del(lv_group_t * group)
{
/*Defocus the the currently focused object*/
/*Defocus the currently focused object*/
if(group->obj_focus != NULL) {
(*group->obj_focus)->signal_cb(*group->obj_focus, LV_SIGNAL_DEFOCUS, NULL);
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)
{
/*Defocus the the currently focused object*/
/*Defocus the currently focused object*/
if(group->obj_focus != NULL) {
(*group->obj_focus)->signal_cb(*group->obj_focus, LV_SIGNAL_DEFOCUS, NULL);
lv_obj_invalidate(*group->obj_focus);

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.
* 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;
i->proc.types.keypad.last_state = data->state;
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.*/
if(editable) {
/*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*/
}
}
@ -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. */
else if(g->editing) {
/*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);
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
* @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((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)) {
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
* @param proc pointer to an input device 'proc'

View File

@ -23,10 +23,6 @@
#include "../lv_widgets/lv_label.h"
#endif
#if defined(LV_GC_INCLUDE)
#include LV_GC_INCLUDE
#endif /* LV_ENABLE_GC */
/*********************
* DEFINES
*********************/
@ -78,7 +74,7 @@ void _lv_refr_init(void)
/**
* Redraw the invalidated areas now.
* 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.
* @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) {
top_act_scr = disp_refr->act_scr;
}

View File

@ -50,7 +50,7 @@ void _lv_refr_init(void);
/**
* Redraw the invalidated areas now.
* 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.
* @param disp pointer to display to refresh. NULL to refresh all displays.
*/

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);
#if LV_USE_DEBUG
# ifndef LV_DEBUG_IS_STYLE

View File

@ -34,7 +34,6 @@ typedef struct {
const lv_area_t * clip_area;
} quarter_draw_dsc_t;
/**********************
* 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 get_rounded_area(int16_t angle, lv_coord_t radius, uint8_t thickness, lv_area_t * res_area);
/**********************
* 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)
{
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)
{
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;
}
}

View File

@ -70,7 +70,7 @@ static inline lv_color_t color_blend_true_color_subtractive(lv_color_t fg, lv_co
* 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];
#endif
@ -78,7 +78,6 @@ static inline lv_color_t color_blend_true_color_subtractive(lv_color_t fg, lv_co
* MACROS
**********************/
#define FILL_NORMAL_MASK_PX(out_x, color) \
if(*mask_tmp_x) { \
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++;
#define FILL_NORMAL_MASK_PX_SCR_TRANSP(out_x, color) \
if(*mask_tmp_x) { \
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++;
#define MAP_NORMAL_MASK_PX(x) \
if(*mask_tmp_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
**********************/
/**
* Fill and area in the display buffer.
* @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
}
/**********************
* 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*/
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
if(opa > LV_OPA_MAX) {
#if 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;
}
#elif LV_USE_GPU_NXP_PXP
#if LV_USE_GPU_NXP_PXP
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);
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);
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
/*Software rendering*/
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
#if LV_USE_GPU_STM32_DMA2D
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);
@ -450,7 +444,6 @@ LV_ATTRIBUTE_FAST_MEM static void fill_normal(const lv_area_t * disp_area, lv_co
}
#endif
/*Buffer the result color to avoid recalculating the same color*/
lv_color_t last_dest_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*/
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);
switch(mode) {
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 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);
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.y2 = blit.src_area.y1 + draw_area_h;
blit.dst = disp_buf;
blit.dst_width = lv_area_get_width(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.y2 = blit.src_area.y1 + draw_area_h;
blit.dst = disp_buf;
blit.dst_width = lv_area_get_width(disp_area);
blit.dst_height = lv_area_get_height(disp_area);

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_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,
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);

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;
}
lv_draw_map(&line, &mask_line, buf, draw_dsc, chroma_keyed, alpha_byte);
line.y1++;
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 ||
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*/
if(other_mask_cnt) {
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
for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) {
#if LV_USE_IMG_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)
{
/*Automatically close images with no caching*/
/*Automatically close images with no caching*/
#if LV_IMG_CACHE_DEF_SIZE == 0
lv_img_decoder_close(&cache->dec_dsc);
#else
LV_UNUSED(cache);
#endif
}

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);
#ifdef __cplusplus
} /* extern "C" */
#endif

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,
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);
/**********************
@ -231,7 +230,6 @@ LV_ATTRIBUTE_FAST_MEM void lv_draw_label(const lv_area_t * coords, const lv_area
lv_color_t recolor;
int32_t letter_w;
lv_draw_rect_dsc_t draw_dsc_sel;
lv_draw_rect_dsc_init(&draw_dsc_sel);
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
**********************/
/**
* Draw a letter in the Virtual Display Buffer
* @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;
bool g_ret = lv_font_get_glyph_dsc(font_p, &g, letter, '\0');
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')*/
if(letter >= 0x20) {
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;
}
const uint8_t * map_p = lv_font_get_glyph_bitmap(font_p, letter);
if(map_p == NULL) {
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,
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)
@ -568,7 +563,6 @@ LV_ATTRIBUTE_FAST_MEM static void draw_letter_normal(lv_coord_t pos_x, lv_coord_
mask_p++;
}
/*Apply masks if any*/
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,
@ -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 width_bit = box_w * bpp; /*Letter width in bits*/
/* 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_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
}
/**
* Convert a hexadecimal characters to a number (0..15)
* @param hex Pointer to a hexadecimal character (0..9, A..F)

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 draw_line_skew(point1, point2, &clip_line, dsc);
if(dsc->round_end || dsc->round_start) {
lv_draw_rect_dsc_t 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,
const lv_area_t * clip,
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,
const lv_area_t * clip,
const lv_draw_line_dsc_t * dsc)

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);
//! @endcond
/**********************

View File

@ -12,10 +12,6 @@
#include "../lv_misc/lv_debug.h"
#include "../lv_misc/lv_gc.h"
#if defined(LV_GC_INCLUDE)
#include LV_GC_INCLUDE
#endif /* LV_ENABLE_GC */
/*********************
* 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 */
if(angle > 180) angle -= 180; /*> 180 will swap the origo*/
int32_t p2x;
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);
}
/**
* Initialize an angle mask.
* @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);
}
/**
* Initialize a fade mask.
* @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;
}
/**
* Initialize a fade mask.
* @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;
}
/**
* Initialize a map mask.
* @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;
}
/**********************
* 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 && k >= 0) {
int32_t x_inters = (px_h * p->xy_steep) >> 10;
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);
}
if(p->inv) {
k = xei - abs_x;
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;
}
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_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_x = abs_x - p->cfg.vertex_p.x;
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 > 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 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*/
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;
@ -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 > 90 && p->cfg.end_angle < 270 && start_angle_last > 0) start_angle_last = 0;
int32_t dist = (end_angle_first - start_angle_last) >> 1;
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;
}
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_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;
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 < 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;
}
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;

View File

@ -37,7 +37,6 @@ enum {
typedef uint8_t lv_draw_mask_res_t;
enum {
LV_DRAW_MASK_TYPE_LINE,
LV_DRAW_MASK_TYPE_ANGLE,
@ -103,7 +102,6 @@ typedef struct {
/*1: It's a flat line? (Near to horizontal)*/
uint8_t flat : 1;
/* Invert the mask. The default is: Keep the left part.
* It is used to select left/right/top/bottom*/
uint8_t inv: 1;
@ -182,7 +180,6 @@ typedef _lv_draw_mask_saved_t _lv_draw_mask_saved_arr_t[_LV_MASK_MAX_NUM];
*/
int16_t lv_draw_mask_add(void * param, void * custom_id);
//! @cond Doxygen_Suppress
/**
@ -199,7 +196,6 @@ int16_t lv_draw_mask_add(void * param, void * custom_id);
LV_ATTRIBUTE_FAST_MEM lv_draw_mask_res_t lv_draw_mask_apply(lv_opa_t * mask_buf, lv_coord_t abs_x, lv_coord_t abs_y,
lv_coord_t len);
//! @endcond
/**
@ -226,7 +222,6 @@ void * lv_draw_mask_remove_custom(void * custom_id);
*/
LV_ATTRIBUTE_FAST_MEM uint8_t lv_draw_mask_get_cnt(void);
//! @endcond
/**

View File

@ -205,7 +205,6 @@ LV_ATTRIBUTE_FAST_MEM static void draw_bg(const lv_area_t * coords, const lv_are
lv_draw_mask_res_t mask_res = LV_DRAW_MASK_RES_FULL_COVER;
lv_color_t grad_color = dsc->bg_color;
lv_color_t * grad_map = NULL;
/*In case of horizontal gradient pre-compute a line with a gradient*/
if(grad_dir == LV_GRAD_DIR_HOR) {
@ -290,7 +289,6 @@ LV_ATTRIBUTE_FAST_MEM static void draw_bg(const lv_area_t * coords, const lv_are
_lv_blend_fill(clip, &fill_area2,
grad_color, mask_buf + mask_ofs, mask_res, opa2, dsc->blend_mode);
}
else {
if(grad_dir == LV_GRAD_DIR_HOR) {
@ -323,7 +321,6 @@ LV_ATTRIBUTE_FAST_MEM static void draw_bg(const lv_area_t * coords, const lv_are
if(fill_area.y1 <= fill_area.y2) fill_area.y1 = fill_area.y2 + 1; /*Avoid overdrawing the last line*/
fill_area.y2 = coords_bg.y2;
_lv_blend_fill(clip, &fill_area,
dsc->bg_color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, dsc->blend_mode);
@ -594,7 +591,6 @@ LV_ATTRIBUTE_FAST_MEM static void draw_shadow(const lv_area_t * coords, const lv
short_side = LV_MIN(lv_area_get_width(&sh_rect_area), lv_area_get_height(&sh_rect_area));
if(r_sh > short_side >> 1) r_sh = short_side >> 1;
int32_t corner_size = sw + r_sh;
lv_opa_t * sh_buf;
@ -921,7 +917,6 @@ LV_ATTRIBUTE_FAST_MEM static void draw_shadow(const lv_area_t * coords, const lv
}
}
/*Fill the bottom side*/
a.x1 = sh_area.x1 + corner_size;
a.x2 = sh_area.x2 - corner_size;
@ -1209,6 +1204,7 @@ static void draw_content(const lv_area_t * coords, const lv_area_t * clip, const
if(s.x == 0 || s.y == 0) return;
lv_area_t coords_tmp;
lv_draw_mask_radius_param_t radius_mask_param;
coords_tmp.x1 = 0;
coords_tmp.y1 = 0;
@ -1377,7 +1373,6 @@ static void draw_full_border(const lv_area_t * area_inner, const lv_area_t * are
if(mask_ofs < 0) mask_ofs = 0;
_lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode);
fill_area.y1++;
fill_area.y2++;
}
@ -1417,4 +1412,3 @@ static void draw_full_border(const lv_area_t * area_inner, const lv_area_t * are
lv_draw_mask_remove_id(mask_rout_id);
lv_mem_buf_release(mask_buf);
}

View File

@ -125,7 +125,6 @@ void lv_draw_polygon(const lv_point_t points[], uint16_t point_cnt, const lv_are
i_next_right = y_min_i + 1;
if(i_next_right > point_cnt - 1) i_next_right = 0;
/* Check if the order of points is inverted or not.
* The normal case is when the left point is on `y_min_i - 1`
* Explanation:

View File

@ -38,7 +38,6 @@
* GLOBAL FUNCTIONS
**********************/
/**
* Get the color of an image's pixel
* @param dsc an image descriptor
@ -411,7 +410,6 @@ uint32_t lv_img_buf_get_img_size(lv_coord_t w, lv_coord_t h, lv_img_cf_t cf)
}
}
#if LV_USE_IMG_TRANSFORM
/**
* Initialize a descriptor to transform an image
@ -485,7 +483,6 @@ void _lv_img_buf_get_transformed_area(lv_area_t * res, lv_coord_t w, lv_coord_t
return;
}
res->x1 = (((-pivot->x) * zoom) >> 8) - 1;
res->y1 = (((-pivot->y) * zoom) >> 8) - 1;
res->x2 = (((w - pivot->x) * zoom) >> 8) + 2;
@ -772,4 +769,3 @@ bool _lv_img_buf_transform_anti_alias(lv_img_transform_dsc_t * dsc)
/**********************
* STATIC FUNCTIONS
**********************/

View File

@ -17,7 +17,6 @@ extern "C" {
#include "../lv_misc/lv_color.h"
#include "../lv_misc/lv_area.h"
/*********************
* DEFINES
*********************/
@ -101,7 +100,6 @@ enum {
};
typedef uint8_t lv_img_cf_t;
/**
* LVGL image header
*/
@ -120,7 +118,6 @@ typedef struct {
non-printable character*/
uint32_t cf : 5; /* Color format: See `lv_img_color_format_t`*/
} lv_img_header_t;
#else
typedef struct {
@ -163,7 +160,6 @@ typedef struct {
lv_opa_t opa;
} res;
struct {
lv_img_dsc_t img_dsc;
int32_t pivot_x_256;
@ -269,7 +265,6 @@ void lv_img_buf_free(lv_img_dsc_t * dsc);
*/
uint32_t lv_img_buf_get_img_size(lv_coord_t w, lv_coord_t h, lv_img_cf_t cf);
#if LV_USE_IMG_TRANSFORM
/**
* Initialize a descriptor to rotate an image
@ -283,7 +278,6 @@ void _lv_img_buf_transform_init(lv_img_transform_dsc_t * dsc);
*/
bool _lv_img_buf_transform_anti_alias(lv_img_transform_dsc_t * dsc);
/**
* Get which color and opa would come to a pixel if it were rotated
* @param dsc a descriptor initialized by `lv_img_buf_rotate_init`

View File

@ -13,9 +13,6 @@
#include "../lv_hal/lv_hal_tick.h"
#include "../lv_misc/lv_gc.h"
#if defined(LV_GC_INCLUDE)
#include LV_GC_INCLUDE
#endif /* LV_ENABLE_GC */
/*********************
* DEFINES
*********************/
@ -37,14 +34,14 @@
* STATIC PROTOTYPES
**********************/
#if LV_IMG_CACHE_DEF_SIZE == 0
static lv_img_cache_entry_t cache_temp;
static lv_img_cache_entry_t cache_temp;
#endif
/**********************
* STATIC VARIABLES
**********************/
#if LV_IMG_CACHE_DEF_SIZE
static uint16_t entry_cnt;
static uint16_t entry_cnt;
#endif
/**********************

View File

@ -13,10 +13,6 @@
#include "../lv_misc/lv_color.h"
#include "../lv_misc/lv_gc.h"
#if defined(LV_GC_INCLUDE)
#include LV_GC_INCLUDE
#endif /* LV_ENABLE_GC */
/*********************
* DEFINES
*********************/
@ -421,7 +417,6 @@ lv_res_t lv_img_decoder_built_in_open(lv_img_decoder_t * decoder, lv_img_decoder
/*The palette begins in the beginning of the image data. Just point to it.*/
lv_color32_t * palette_p = (lv_color32_t *)((lv_img_dsc_t *)dsc->src)->data;
uint32_t i;
for(i = 0; i < palette_size; i++) {
user_data->palette[i] = lv_color_make(palette_p[i].ch.red, palette_p[i].ch.green, palette_p[i].ch.blue);
@ -525,7 +520,6 @@ void lv_img_decoder_built_in_close(lv_img_decoder_t * decoder, lv_img_decoder_ds
}
}
/**********************
* STATIC FUNCTIONS
**********************/

View File

@ -43,7 +43,7 @@
* Return with the bitmap of a font.
* @param font_p pointer to a font
* @param letter an UNICODE character code
* @return pointer to the bitmap of the letter
* @return pointer to the bitmap of the letter
*/
const uint8_t * lv_font_get_glyph_bitmap(const lv_font_t * font_p, uint32_t letter)
{

View File

@ -43,7 +43,6 @@ typedef struct {
uint8_t bpp; /**< Bit-per-pixel: 1, 2, 4, 8*/
} lv_font_glyph_dsc_t;
/** The bitmaps might be upscaled by 3 to achieve subpixel rendering. */
enum {
LV_FONT_SUBPX_NONE,
@ -56,7 +55,7 @@ typedef uint8_t lv_font_subpx_t;
/** Describe the properties of a font*/
typedef struct _lv_font_struct {
/** Get a glyph's descriptor from a font*/
/** Get a glyph's descriptor from a font*/
bool (*get_glyph_dsc)(const struct _lv_font_struct *, lv_font_glyph_dsc_t *, uint32_t letter, uint32_t letter_next);
/** Get a glyph's bitmap from a font*/
@ -75,7 +74,6 @@ typedef struct _lv_font_struct {
lv_font_user_data_t user_data; /**< Custom user data for font. */
#endif
} lv_font_t;
/**********************
@ -86,7 +84,7 @@ typedef struct _lv_font_struct {
* Return with the bitmap of a font.
* @param font_p pointer to a font
* @param letter an UNICODE character code
* @return pointer to the bitmap of the letter
* @return pointer to the bitmap of the letter
*/
const uint8_t * lv_font_get_glyph_bitmap(const lv_font_t * font_p, uint32_t letter);

View File

@ -5818,7 +5818,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
};
/*---------------------
* GLYPH DESCRIPTION
*--------------------*/
@ -6508,8 +6507,6 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
}
};
/*--------------------
* ALL CUSTOM DATA
*--------------------*/
@ -6527,7 +6524,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
.bitmap_format = 0
};
/*-----------------
* PUBLIC FONT
*----------------*/
@ -6549,4 +6545,3 @@ lv_font_t lv_font_dejavu_16_persian_hebrew = {
};
#endif /*#if LV_FONT_DEJAVU_16_PERSIAN_HEBREW*/

View File

@ -16,10 +16,6 @@
#include "../lv_misc/lv_utils.h"
#include "../lv_misc/lv_mem.h"
#if defined(LV_GC_INCLUDE)
#include LV_GC_INCLUDE
#endif /* LV_ENABLE_GC */
/*********************
* DEFINES
*********************/
@ -199,7 +195,6 @@ void _lv_font_clean_up_fmt_txt(void)
}
}
/**********************
* STATIC FUNCTIONS
**********************/
@ -557,7 +552,6 @@ static inline uint8_t rle_next(void)
rle_state = RLE_STATE_SINGLE;
}
}
else if(rle_state == RLE_STATE_COUNTER) {
ret = rle_prev_v;

View File

@ -45,7 +45,6 @@ typedef struct {
#endif
} lv_font_fmt_txt_glyph_dsc_t;
/** Format of font character map. */
enum {
LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY,
@ -56,7 +55,6 @@ enum {
typedef uint8_t lv_font_fmt_txt_cmap_type_t;
/* Map codepoints to a `glyph_dsc`s
* Several formats are supported to optimize memory usage
* See https://github.com/lvgl/lv_font_conv/blob/master/doc/font_spec.md
@ -117,7 +115,7 @@ typedef struct {
typedef struct {
/*To get a kern value of two code points:
1. Get the `glyph_id_left` and `glyph_id_right` from `lv_font_fmt_txt_cmap_t
2 for(i = 0; i < pair_cnt * 2; i+2)
2. for(i = 0; i < pair_cnt * 2; i+2)
if(gylph_ids[i] == glyph_id_left &&
gylph_ids[i+1] == glyph_id_right)
return values[i / 2];
@ -132,7 +130,7 @@ typedef struct {
typedef struct {
/*To get a kern value of two code points:
1. Get the `glyph_id_left` and `glyph_id_right` from `lv_font_fmt_txt_cmap_t
2 Get the class of the left and right glyphs as `left_class` and `right_class`
2. Get the class of the left and right glyphs as `left_class` and `right_class`
left_class = left_class_mapping[glyph_id_left];
right_class = right_class_mapping[glyph_id_right];
3. value = class_pair_values[(left_class-1)*right_class_cnt + (right_class-1)]
@ -145,7 +143,6 @@ typedef struct {
uint8_t right_class_cnt;
} lv_font_fmt_txt_kern_classes_t;
/** Bitmap formats*/
typedef enum {
LV_FONT_FMT_TXT_PLAIN = 0,
@ -153,7 +150,6 @@ typedef enum {
LV_FONT_FMT_TXT_COMPRESSED_NO_PREFILTER = 1,
} lv_font_fmt_txt_bitmap_format_t;
/*Describe store additional data for fonts */
typedef struct {
/*The bitmaps of all glyphs*/

View File

@ -16,7 +16,6 @@
#if LV_USE_FILESYSTEM
/**********************
* TYPEDEFS
**********************/
@ -61,7 +60,6 @@ typedef struct cmap_table_bin {
uint8_t padding;
} cmap_table_bin_t;
/**********************
* STATIC PROTOTYPES
**********************/
@ -72,7 +70,6 @@ int32_t load_kern(lv_fs_file_t * fp, lv_font_fmt_txt_dsc_t * font_dsc, uint8_t f
static int read_bits_signed(bit_iterator_t * it, int n_bits, lv_fs_res_t * res);
static int read_bits(bit_iterator_t * it, int n_bits, lv_fs_res_t * res);
/**********************
* MACROS
**********************/
@ -116,7 +113,6 @@ lv_font_t * lv_font_load(const char * font_name)
return font;
}
/**
* Frees the memory allocated by the `lv_font_load()` function
* @param font lv_font_t object created by the lv_font_load function
@ -185,7 +181,6 @@ void lv_font_free(lv_font_t * font)
}
}
/**********************
* STATIC FUNCTIONS
**********************/
@ -691,4 +686,3 @@ int32_t load_kern(lv_fs_file_t * fp, lv_font_fmt_txt_dsc_t * font_dsc, uint8_t f
}
#endif /*LV_USE_FILESYSTEM*/

View File

@ -947,7 +947,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0
};
/*---------------------
* GLYPH DESCRIPTION
*--------------------*/
@ -1141,7 +1140,6 @@ static const lv_font_fmt_txt_cmap_t cmaps[] = {
* KERNING
*----------------*/
/*Map glyph_ids to kern left classes*/
static const uint8_t kern_left_class_mapping[] = {
0, 0, 1, 2, 0, 3, 4, 5,
@ -1568,7 +1566,6 @@ static const int8_t kern_class_values[] = {
0, 0, 0, 0, 0
};
/*Collect the kern class' data in one place*/
static const lv_font_fmt_txt_kern_classes_t kern_classes = {
.class_pair_values = kern_class_values,
@ -1595,7 +1592,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
.bitmap_format = 0
};
/*-----------------
* PUBLIC FONT
*----------------*/
@ -1616,7 +1612,4 @@ lv_font_t lv_font_montserrat_10 = {
.dsc = &font_dsc /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */
};
#endif /*#if LV_FONT_MONTSERRAT_10*/

View File

@ -1201,7 +1201,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0x0, 0x0, 0x0
};
/*---------------------
* GLYPH DESCRIPTION
*--------------------*/
@ -1396,7 +1395,6 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
* KERNING
*----------------*/
/*Map glyph_ids to kern left classes*/
static const uint8_t kern_left_class_mapping[] =
{
@ -1826,7 +1824,6 @@ static const int8_t kern_class_values[] =
0, 0, 0, 0, 0
};
/*Collect the kern class' data in one place*/
static const lv_font_fmt_txt_kern_classes_t kern_classes =
{
@ -1854,7 +1851,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
.bitmap_format = 0
};
/*-----------------
* PUBLIC FONT
*----------------*/
@ -1876,4 +1872,3 @@ lv_font_t lv_font_montserrat_12 = {
};
#endif /*#if LV_FONT_MONTSERRAT_12*/

View File

@ -1201,7 +1201,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0x0, 0x0, 0x0
};
/*---------------------
* GLYPH DESCRIPTION
*--------------------*/
@ -1396,7 +1395,6 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
* KERNING
*----------------*/
/*Map glyph_ids to kern left classes*/
static const uint8_t kern_left_class_mapping[] =
{
@ -1826,7 +1824,6 @@ static const int8_t kern_class_values[] =
0, 0, 0, 0, 0
};
/*Collect the kern class' data in one place*/
static const lv_font_fmt_txt_kern_classes_t kern_classes =
{
@ -1854,7 +1851,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
.bitmap_format = 0
};
/*-----------------
* PUBLIC FONT
*----------------*/
@ -1876,4 +1872,3 @@ lv_font_t lv_font_montserrat_12_subpx = {
};
#endif /*#if LV_FONT_MONTSERRAT_12_SUBPX*/

View File

@ -1470,7 +1470,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0x0, 0x0, 0x0
};
/*---------------------
* GLYPH DESCRIPTION
*--------------------*/
@ -1665,7 +1664,6 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
* KERNING
*----------------*/
/*Map glyph_ids to kern left classes*/
static const uint8_t kern_left_class_mapping[] =
{
@ -2095,7 +2093,6 @@ static const int8_t kern_class_values[] =
0, 0, 0, 0, 0
};
/*Collect the kern class' data in one place*/
static const lv_font_fmt_txt_kern_classes_t kern_classes =
{
@ -2123,7 +2120,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
.bitmap_format = 0
};
/*-----------------
* PUBLIC FONT
*----------------*/
@ -2145,4 +2141,3 @@ lv_font_t lv_font_montserrat_14 = {
};
#endif /*#if LV_FONT_MONTSERRAT_14*/

View File

@ -1733,7 +1733,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0x0, 0x0, 0x0, 0x0, 0x0, 0x0
};
/*---------------------
* GLYPH DESCRIPTION
*--------------------*/
@ -1928,7 +1927,6 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
* KERNING
*----------------*/
/*Map glyph_ids to kern left classes*/
static const uint8_t kern_left_class_mapping[] =
{
@ -2358,7 +2356,6 @@ static const int8_t kern_class_values[] =
0, 0, 0, 0, 0
};
/*Collect the kern class' data in one place*/
static const lv_font_fmt_txt_kern_classes_t kern_classes =
{
@ -2386,7 +2383,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
.bitmap_format = 0
};
/*-----------------
* PUBLIC FONT
*----------------*/
@ -2408,4 +2404,3 @@ lv_font_t lv_font_montserrat_16 = {
};
#endif /*#if LV_FONT_MONTSERRAT_16*/

View File

@ -2122,7 +2122,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0x0, 0x0
};
/*---------------------
* GLYPH DESCRIPTION
*--------------------*/
@ -2317,7 +2316,6 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
* KERNING
*----------------*/
/*Map glyph_ids to kern left classes*/
static const uint8_t kern_left_class_mapping[] =
{
@ -2747,7 +2745,6 @@ static const int8_t kern_class_values[] =
0, 0, 0, 0, 0
};
/*Collect the kern class' data in one place*/
static const lv_font_fmt_txt_kern_classes_t kern_classes =
{
@ -2775,7 +2772,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
.bitmap_format = 0
};
/*-----------------
* PUBLIC FONT
*----------------*/
@ -2797,4 +2793,3 @@ lv_font_t lv_font_montserrat_18 = {
};
#endif /*#if LV_FONT_MONTSERRAT_18*/

View File

@ -2468,7 +2468,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0x0
};
/*---------------------
* GLYPH DESCRIPTION
*--------------------*/
@ -2663,7 +2662,6 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
* KERNING
*----------------*/
/*Map glyph_ids to kern left classes*/
static const uint8_t kern_left_class_mapping[] =
{
@ -3093,7 +3091,6 @@ static const int8_t kern_class_values[] =
0, 0, 0, 0, 0
};
/*Collect the kern class' data in one place*/
static const lv_font_fmt_txt_kern_classes_t kern_classes =
{
@ -3121,7 +3118,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
.bitmap_format = 0
};
/*-----------------
* PUBLIC FONT
*----------------*/
@ -3143,4 +3139,3 @@ lv_font_t lv_font_montserrat_20 = {
};
#endif /*#if LV_FONT_MONTSERRAT_20*/

View File

@ -2885,7 +2885,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0x0
};
/*---------------------
* GLYPH DESCRIPTION
*--------------------*/
@ -3080,7 +3079,6 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
* KERNING
*----------------*/
/*Map glyph_ids to kern left classes*/
static const uint8_t kern_left_class_mapping[] =
{
@ -3510,7 +3508,6 @@ static const int8_t kern_class_values[] =
0, 0, 0, 0, 0
};
/*Collect the kern class' data in one place*/
static const lv_font_fmt_txt_kern_classes_t kern_classes =
{
@ -3538,7 +3535,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
.bitmap_format = 0
};
/*-----------------
* PUBLIC FONT
*----------------*/
@ -3560,4 +3556,3 @@ lv_font_t lv_font_montserrat_22 = {
};
#endif /*#if LV_FONT_MONTSERRAT_22*/

View File

@ -3286,7 +3286,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
};
/*---------------------
* GLYPH DESCRIPTION
*--------------------*/
@ -3481,7 +3480,6 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
* KERNING
*----------------*/
/*Map glyph_ids to kern left classes*/
static const uint8_t kern_left_class_mapping[] =
{
@ -3911,7 +3909,6 @@ static const int8_t kern_class_values[] =
0, 0, 0, 0, 0
};
/*Collect the kern class' data in one place*/
static const lv_font_fmt_txt_kern_classes_t kern_classes =
{
@ -3939,7 +3936,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
.bitmap_format = 0
};
/*-----------------
* PUBLIC FONT
*----------------*/
@ -3961,4 +3957,3 @@ lv_font_t lv_font_montserrat_24 = {
};
#endif /*#if LV_FONT_MONTSERRAT_24*/

View File

@ -3806,7 +3806,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0x0, 0x0, 0x0
};
/*---------------------
* GLYPH DESCRIPTION
*--------------------*/
@ -4001,7 +4000,6 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
* KERNING
*----------------*/
/*Map glyph_ids to kern left classes*/
static const uint8_t kern_left_class_mapping[] =
{
@ -4431,7 +4429,6 @@ static const int8_t kern_class_values[] =
0, 0, 0, 0, 0
};
/*Collect the kern class' data in one place*/
static const lv_font_fmt_txt_kern_classes_t kern_classes =
{
@ -4459,7 +4456,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
.bitmap_format = 0
};
/*-----------------
* PUBLIC FONT
*----------------*/
@ -4481,4 +4477,3 @@ lv_font_t lv_font_montserrat_26 = {
};
#endif /*#if LV_FONT_MONTSERRAT_26*/

View File

@ -4340,7 +4340,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0x0, 0x0, 0x0, 0x0
};
/*---------------------
* GLYPH DESCRIPTION
*--------------------*/
@ -4535,7 +4534,6 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
* KERNING
*----------------*/
/*Map glyph_ids to kern left classes*/
static const uint8_t kern_left_class_mapping[] =
{
@ -4965,7 +4963,6 @@ static const int8_t kern_class_values[] =
0, 0, 0, 0, 0
};
/*Collect the kern class' data in one place*/
static const lv_font_fmt_txt_kern_classes_t kern_classes =
{
@ -4993,7 +4990,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
.bitmap_format = 0
};
/*-----------------
* PUBLIC FONT
*----------------*/
@ -5015,4 +5011,3 @@ lv_font_t lv_font_montserrat_28 = {
};
#endif /*#if LV_FONT_MONTSERRAT_28*/

View File

@ -2530,7 +2530,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0xff, 0x3a, 0xba, 0x40, 0x3f, 0xf9, 0x0
};
/*---------------------
* GLYPH DESCRIPTION
*--------------------*/
@ -2725,7 +2724,6 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
* KERNING
*----------------*/
/*Map glyph_ids to kern left classes*/
static const uint8_t kern_left_class_mapping[] =
{
@ -3155,7 +3153,6 @@ static const int8_t kern_class_values[] =
0, 0, 0, 0, 0
};
/*Collect the kern class' data in one place*/
static const lv_font_fmt_txt_kern_classes_t kern_classes =
{
@ -3183,7 +3180,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
.bitmap_format = 1
};
/*-----------------
* PUBLIC FONT
*----------------*/
@ -3205,4 +3201,3 @@ lv_font_t lv_font_montserrat_28_compressed = {
};
#endif /*#if LV_FONT_MONTSERRAT_28_COMPRESSED*/

View File

@ -4906,7 +4906,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0x0, 0x0, 0x0, 0x0, 0x0, 0x0
};
/*---------------------
* GLYPH DESCRIPTION
*--------------------*/
@ -5101,7 +5100,6 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
* KERNING
*----------------*/
/*Map glyph_ids to kern left classes*/
static const uint8_t kern_left_class_mapping[] =
{
@ -5531,7 +5529,6 @@ static const int8_t kern_class_values[] =
0, 0, 0, 0, 0
};
/*Collect the kern class' data in one place*/
static const lv_font_fmt_txt_kern_classes_t kern_classes =
{
@ -5559,7 +5556,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
.bitmap_format = 0
};
/*-----------------
* PUBLIC FONT
*----------------*/
@ -5581,4 +5577,3 @@ lv_font_t lv_font_montserrat_30 = {
};
#endif /*#if LV_FONT_MONTSERRAT_30*/

View File

@ -5383,7 +5383,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0x0, 0x0, 0x0
};
/*---------------------
* GLYPH DESCRIPTION
*--------------------*/
@ -5578,7 +5577,6 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
* KERNING
*----------------*/
/*Map glyph_ids to kern left classes*/
static const uint8_t kern_left_class_mapping[] =
{
@ -6008,7 +6006,6 @@ static const int8_t kern_class_values[] =
0, 0, 0, 0, 0
};
/*Collect the kern class' data in one place*/
static const lv_font_fmt_txt_kern_classes_t kern_classes =
{
@ -6036,7 +6033,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
.bitmap_format = 0
};
/*-----------------
* PUBLIC FONT
*----------------*/
@ -6058,4 +6054,3 @@ lv_font_t lv_font_montserrat_32 = {
};
#endif /*#if LV_FONT_MONTSERRAT_32*/

View File

@ -6160,7 +6160,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0x0
};
/*---------------------
* GLYPH DESCRIPTION
*--------------------*/
@ -6355,7 +6354,6 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
* KERNING
*----------------*/
/*Map glyph_ids to kern left classes*/
static const uint8_t kern_left_class_mapping[] =
{
@ -6785,7 +6783,6 @@ static const int8_t kern_class_values[] =
0, 0, 0, 0, 0
};
/*Collect the kern class' data in one place*/
static const lv_font_fmt_txt_kern_classes_t kern_classes =
{
@ -6813,7 +6810,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
.bitmap_format = 0
};
/*-----------------
* PUBLIC FONT
*----------------*/
@ -6835,4 +6831,3 @@ lv_font_t lv_font_montserrat_34 = {
};
#endif /*#if LV_FONT_MONTSERRAT_34*/

View File

@ -6787,7 +6787,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0x0, 0x0
};
/*---------------------
* GLYPH DESCRIPTION
*--------------------*/
@ -6982,7 +6981,6 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
* KERNING
*----------------*/
/*Map glyph_ids to kern left classes*/
static const uint8_t kern_left_class_mapping[] =
{
@ -7412,7 +7410,6 @@ static const int8_t kern_class_values[] =
0, 0, 0, 0, 0
};
/*Collect the kern class' data in one place*/
static const lv_font_fmt_txt_kern_classes_t kern_classes =
{
@ -7440,7 +7437,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
.bitmap_format = 0
};
/*-----------------
* PUBLIC FONT
*----------------*/
@ -7462,4 +7458,3 @@ lv_font_t lv_font_montserrat_36 = {
};
#endif /*#if LV_FONT_MONTSERRAT_36*/

View File

@ -7510,7 +7510,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
};
/*---------------------
* GLYPH DESCRIPTION
*--------------------*/
@ -7705,7 +7704,6 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
* KERNING
*----------------*/
/*Map glyph_ids to kern left classes*/
static const uint8_t kern_left_class_mapping[] =
{
@ -8135,7 +8133,6 @@ static const int8_t kern_class_values[] =
0, 0, 0, 0, 0
};
/*Collect the kern class' data in one place*/
static const lv_font_fmt_txt_kern_classes_t kern_classes =
{
@ -8163,7 +8160,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
.bitmap_format = 0
};
/*-----------------
* PUBLIC FONT
*----------------*/
@ -8185,4 +8181,3 @@ lv_font_t lv_font_montserrat_38 = {
};
#endif /*#if LV_FONT_MONTSERRAT_38*/

View File

@ -8342,7 +8342,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0x0, 0x0, 0x0, 0x0, 0x0
};
/*---------------------
* GLYPH DESCRIPTION
*--------------------*/
@ -8537,7 +8536,6 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
* KERNING
*----------------*/
/*Map glyph_ids to kern left classes*/
static const uint8_t kern_left_class_mapping[] =
{
@ -8967,7 +8965,6 @@ static const int8_t kern_class_values[] =
0, 0, 0, 0, 0
};
/*Collect the kern class' data in one place*/
static const lv_font_fmt_txt_kern_classes_t kern_classes =
{
@ -8995,7 +8992,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
.bitmap_format = 0
};
/*-----------------
* PUBLIC FONT
*----------------*/
@ -9017,4 +9013,3 @@ lv_font_t lv_font_montserrat_40 = {
};
#endif /*#if LV_FONT_MONTSERRAT_40*/

View File

@ -9160,7 +9160,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0x0, 0x0
};
/*---------------------
* GLYPH DESCRIPTION
*--------------------*/
@ -9355,7 +9354,6 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
* KERNING
*----------------*/
/*Map glyph_ids to kern left classes*/
static const uint8_t kern_left_class_mapping[] =
{
@ -9785,7 +9783,6 @@ static const int8_t kern_class_values[] =
0, 0, 0, 0, 0
};
/*Collect the kern class' data in one place*/
static const lv_font_fmt_txt_kern_classes_t kern_classes =
{
@ -9813,7 +9810,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
.bitmap_format = 0
};
/*-----------------
* PUBLIC FONT
*----------------*/
@ -9835,4 +9831,3 @@ lv_font_t lv_font_montserrat_42 = {
};
#endif /*#if LV_FONT_MONTSERRAT_42*/

View File

@ -9960,7 +9960,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0x0, 0x0, 0x0, 0x0, 0x0
};
/*---------------------
* GLYPH DESCRIPTION
*--------------------*/
@ -10155,7 +10154,6 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
* KERNING
*----------------*/
/*Map glyph_ids to kern left classes*/
static const uint8_t kern_left_class_mapping[] =
{
@ -10585,7 +10583,6 @@ static const int8_t kern_class_values[] =
0, 0, 0, 0, 0
};
/*Collect the kern class' data in one place*/
static const lv_font_fmt_txt_kern_classes_t kern_classes =
{
@ -10613,7 +10610,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
.bitmap_format = 0
};
/*-----------------
* PUBLIC FONT
*----------------*/
@ -10635,4 +10631,3 @@ lv_font_t lv_font_montserrat_44 = {
};
#endif /*#if LV_FONT_MONTSERRAT_44*/

View File

@ -10889,7 +10889,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0x0
};
/*---------------------
* GLYPH DESCRIPTION
*--------------------*/
@ -11084,7 +11083,6 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
* KERNING
*----------------*/
/*Map glyph_ids to kern left classes*/
static const uint8_t kern_left_class_mapping[] =
{
@ -11514,7 +11512,6 @@ static const int8_t kern_class_values[] =
0, 0, 0, 0, 0
};
/*Collect the kern class' data in one place*/
static const lv_font_fmt_txt_kern_classes_t kern_classes =
{
@ -11542,7 +11539,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
.bitmap_format = 0
};
/*-----------------
* PUBLIC FONT
*----------------*/
@ -11564,4 +11560,3 @@ lv_font_t lv_font_montserrat_46 = {
};
#endif /*#if LV_FONT_MONTSERRAT_46*/

View File

@ -11571,7 +11571,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
};
/*---------------------
* GLYPH DESCRIPTION
*--------------------*/
@ -11766,7 +11765,6 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
* KERNING
*----------------*/
/*Map glyph_ids to kern left classes*/
static const uint8_t kern_left_class_mapping[] =
{
@ -12196,7 +12194,6 @@ static const int8_t kern_class_values[] =
0, 0, 0, 0, 0
};
/*Collect the kern class' data in one place*/
static const lv_font_fmt_txt_kern_classes_t kern_classes =
{
@ -12224,7 +12221,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
.bitmap_format = 0
};
/*-----------------
* PUBLIC FONT
*----------------*/
@ -12246,4 +12242,3 @@ lv_font_t lv_font_montserrat_48 = {
};
#endif /*#if LV_FONT_MONTSERRAT_48*/

View File

@ -739,7 +739,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0x0, 0x0, 0x0
};
/*---------------------
* GLYPH DESCRIPTION
*--------------------*/
@ -933,7 +932,6 @@ static const lv_font_fmt_txt_cmap_t cmaps[] = {
* KERNING
*----------------*/
/*Map glyph_ids to kern left classes*/
static const uint8_t kern_left_class_mapping[] = {
0, 0, 1, 2, 0, 3, 4, 5,
@ -1360,7 +1358,6 @@ static const int8_t kern_class_values[] = {
0, 0, 0, 0, 0
};
/*Collect the kern class' data in one place*/
static const lv_font_fmt_txt_kern_classes_t kern_classes = {
.class_pair_values = kern_class_values,
@ -1387,7 +1384,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
.bitmap_format = 0
};
/*-----------------
* PUBLIC FONT
*----------------*/
@ -1408,7 +1404,4 @@ lv_font_t lv_font_montserrat_8 = {
.dsc = &font_dsc /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */
};
#endif /*#if LV_FONT_MONTSERRAT_8*/

View File

@ -12639,7 +12639,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0x0, 0x0, 0x0, 0x0, 0x0, 0x0
};
/*---------------------
* GLYPH DESCRIPTION
*--------------------*/
@ -13559,8 +13558,6 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
}
};
/*--------------------
* ALL CUSTOM DATA
*--------------------*/
@ -13578,7 +13575,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
.bitmap_format = 0
};
/*-----------------
* PUBLIC FONT
*----------------*/
@ -13600,4 +13596,3 @@ lv_font_t lv_font_simsun_16_cjk = {
};
#endif /*#if LV_FONT_SIMSUN_16_CJK*/

View File

@ -471,7 +471,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0xc0
};
/*---------------------
* GLYPH DESCRIPTION
*--------------------*/
@ -580,8 +579,6 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
* CHARACTER MAPPING
*--------------------*/
/*Collect the unicode lists and glyph_id offsets*/
static const lv_font_fmt_txt_cmap_t cmaps[] = {
{
@ -590,8 +587,6 @@ static const lv_font_fmt_txt_cmap_t cmaps[] = {
}
};
/*--------------------
* ALL CUSTOM DATA
*--------------------*/
@ -609,7 +604,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
.bitmap_format = 0
};
/*-----------------
* PUBLIC FONT
*----------------*/
@ -630,6 +624,4 @@ lv_font_t lv_font_unscii_16 = {
.dsc = &font_dsc /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */
};
#endif /*#if LV_FONT_UNSCII_16*/

View File

@ -307,7 +307,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
0xc1, 0x42, 0xbd, 0x2c, 0x40, 0x81, 0x0
};
/*---------------------
* GLYPH DESCRIPTION
*--------------------*/
@ -416,8 +415,6 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
* CHARACTER MAPPING
*--------------------*/
/*Collect the unicode lists and glyph_id offsets*/
static const lv_font_fmt_txt_cmap_t cmaps[] = {
{
@ -426,8 +423,6 @@ static const lv_font_fmt_txt_cmap_t cmaps[] = {
}
};
/*--------------------
* ALL CUSTOM DATA
*--------------------*/
@ -445,7 +440,6 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
.bitmap_format = 0
};
/*-----------------
* PUBLIC FONT
*----------------*/
@ -466,6 +460,4 @@ lv_font_t lv_font_unscii_8 = {
.dsc = &font_dsc /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */
};
#endif /*#if LV_FONT_UNSCII_8*/

View File

@ -156,10 +156,4 @@ enum {
} /* extern "C" */
#endif
#endif /*LV_SYMBOL_DEF_H*/

View File

@ -27,7 +27,6 @@
*
*/
/*********************
* INCLUDES
*********************/
@ -60,7 +59,6 @@
#error Only 16bit color depth is supported. Set LV_COLOR_DEPTH to 16.
#endif
/**********************
* TYPEDEFS
**********************/
@ -136,7 +134,6 @@ void lv_gpu_nxp_pxp_deinit(void)
PXP_Deinit(LV_GPU_NXP_PXP_ID);
}
/**
* Fill area, with optional opacity.
*
@ -283,7 +280,6 @@ void lv_gpu_nxp_pxp_blit(lv_color_t * dest, lv_coord_t dest_width, const lv_colo
}
PXP_EnableAlphaSurfaceOverlayColorKey(LV_GPU_NXP_PXP_ID, colorKeyEnabled);
/* Output buffer. */
outputBufferConfig.pixelFormat = (pxp_output_pixel_format_t)PXP_OUT_PIXEL_FORMAT;
outputBufferConfig.interlacedMode = kPXP_OutputProgressive;

View File

@ -126,14 +126,12 @@ void lv_gpu_nxp_pxp_deinit(void);
void lv_gpu_nxp_pxp_fill(lv_color_t * dest_buf, lv_coord_t dest_width, const lv_area_t * fill_area, lv_color_t color,
lv_opa_t opa);
/**
* @brief BLock Image Transfer - copy rectangular image from src buffer to dst buffer with effects.
*
* By default, image is copied directly, with optional opacity configured by \p opa.
* Color keying can be enabled by calling lv_gpu_nxp_pxp_enable_color_key() before calling this function.
* Recoloring can be enabled by calling lv_gpu_nxp_pxp_enable_recolor() before calling this function.
* Recoloring can be enabled by calling lv_gpu_nxp_pxp_enable_recolor() before calling this function.
* Note that color keying and recoloring at the same time is not supported and black rectangle is rendered.
*
* @param[in/out] dest destination buffer
@ -147,7 +145,6 @@ void lv_gpu_nxp_pxp_fill(lv_color_t * dest_buf, lv_coord_t dest_width, const lv_
void lv_gpu_nxp_pxp_blit(lv_color_t * dest, lv_coord_t dest_width, const lv_color_t * src, lv_coord_t src_width,
lv_coord_t copy_width, lv_coord_t copy_height, lv_opa_t opa);
/**
* @brief Enable color keying for subsequent calls to lv_gpu_nxp_pxp_blit()
*
@ -161,7 +158,6 @@ void lv_gpu_nxp_pxp_enable_color_key(void);
*/
void lv_gpu_nxp_pxp_disable_color_key(void);
/**
* @brief Enable recolor feature for subsequent calls to lv_gpu_nxp_pxp_blit()
*

View File

@ -43,7 +43,6 @@
#include "semphr.h"
#endif
/*********************
* DEFINES
*********************/

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