mirror of
https://github.com/lvgl/lvgl.git
synced 2026-05-27 20:57:01 +08:00
chore: fix spelling (#6401)
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> Co-authored-by: Gabor Kiss-Vamosi <kisvegabor@gmail.com>
This commit is contained in:
@@ -355,7 +355,7 @@
|
|||||||
#define LV_ATTRIBUTE_FAST_MEM
|
#define LV_ATTRIBUTE_FAST_MEM
|
||||||
|
|
||||||
/*Export integer constant to binding. This macro is used with constants in the form of LV_<CONST> that
|
/*Export integer constant to binding. This macro is used with constants in the form of LV_<CONST> that
|
||||||
*should also appear on LVGL binding API such as Micropython.*/
|
*should also appear on LVGL binding API such as MicroPython.*/
|
||||||
#define LV_EXPORT_CONST_INT(int_value) struct _silence_gcc_warning /*The default value just prevents GCC warning*/
|
#define LV_EXPORT_CONST_INT(int_value) struct _silence_gcc_warning /*The default value just prevents GCC warning*/
|
||||||
|
|
||||||
/*Prefix all global extern data with this*/
|
/*Prefix all global extern data with this*/
|
||||||
@@ -460,7 +460,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*Enable Arabic/Persian processing
|
/*Enable Arabic/Persian processing
|
||||||
*In these languages characters should be replaced with an other form based on their position in the text*/
|
*In these languages characters should be replaced with another form based on their position in the text*/
|
||||||
#define LV_USE_ARABIC_PERSIAN_CHARS 0
|
#define LV_USE_ARABIC_PERSIAN_CHARS 0
|
||||||
|
|
||||||
/*==================
|
/*==================
|
||||||
@@ -796,7 +796,7 @@
|
|||||||
#define LV_USE_IME_PINYIN 1
|
#define LV_USE_IME_PINYIN 1
|
||||||
#if LV_USE_IME_PINYIN
|
#if LV_USE_IME_PINYIN
|
||||||
/*1: Use default thesaurus*/
|
/*1: Use default thesaurus*/
|
||||||
/*If you do not use the default thesaurus, be sure to use `lv_ime_pinyin` after setting the thesauruss*/
|
/*If you do not use the default thesaurus, be sure to use `lv_ime_pinyin` after setting the thesaurus*/
|
||||||
#define LV_IME_PINYIN_USE_DEFAULT_DICT 1
|
#define LV_IME_PINYIN_USE_DEFAULT_DICT 1
|
||||||
/*Set the maximum number of candidate panels that can be displayed*/
|
/*Set the maximum number of candidate panels that can be displayed*/
|
||||||
/*This needs to be adjusted according to the size of the screen*/
|
/*This needs to be adjusted according to the size of the screen*/
|
||||||
@@ -838,7 +838,7 @@
|
|||||||
#define LV_USE_X11 0
|
#define LV_USE_X11 0
|
||||||
#if LV_USE_X11
|
#if LV_USE_X11
|
||||||
#define LV_X11_DIRECT_EXIT 1 /*Exit the application when all X11 windows have been closed*/
|
#define LV_X11_DIRECT_EXIT 1 /*Exit the application when all X11 windows have been closed*/
|
||||||
#define LV_X11_DOUBLE_BUFFER 1 /*Use double buffers for endering*/
|
#define LV_X11_DOUBLE_BUFFER 1 /*Use double buffers for rendering*/
|
||||||
/*select only 1 of the following render modes (LV_X11_RENDER_MODE_PARTIAL preferred!)*/
|
/*select only 1 of the following render modes (LV_X11_RENDER_MODE_PARTIAL preferred!)*/
|
||||||
#define LV_X11_RENDER_MODE_PARTIAL 1 /*Partial render mode (preferred)*/
|
#define LV_X11_RENDER_MODE_PARTIAL 1 /*Partial render mode (preferred)*/
|
||||||
#define LV_X11_RENDER_MODE_DIRECT 0 /*direct render mode*/
|
#define LV_X11_RENDER_MODE_DIRECT 0 /*direct render mode*/
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
"vscode": {
|
"vscode": {
|
||||||
// Add the IDs of extensions you want installed when the container is created.
|
// Add the IDs of extensions you want installed when the container is created.
|
||||||
"extensions": [
|
"extensions": [
|
||||||
//"searking.preview-vscode"
|
//"searKing.preview-vscode"
|
||||||
"analytic-signal.preview-html"
|
"analytic-signal.preview-html"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ body:
|
|||||||
attributes:
|
attributes:
|
||||||
value: >
|
value: >
|
||||||
Be sure to read the
|
Be sure to read the
|
||||||
[FAQ](https://docs.lvgl.io/master/intro/index.html#faq), and the realted
|
[FAQ](https://docs.lvgl.io/master/intro/index.html#faq), and the related
|
||||||
part of the [Documentation](https://docs.lvgl.io/) first.
|
part of the [Documentation](https://docs.lvgl.io/) first.
|
||||||
- type: input
|
- type: input
|
||||||
id: version
|
id: version
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
name: Micropython CI
|
name: MicroPython CI
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
|
|||||||
@@ -918,7 +918,7 @@ menu "LVGL configuration"
|
|||||||
bool "Enable Arabic/Persian processing"
|
bool "Enable Arabic/Persian processing"
|
||||||
help
|
help
|
||||||
In these languages characters should be replaced with
|
In these languages characters should be replaced with
|
||||||
an other form based on their position in the text.
|
another form based on their position in the text.
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
menu "Widget Usage"
|
menu "Widget Usage"
|
||||||
@@ -1207,7 +1207,7 @@ menu "LVGL configuration"
|
|||||||
bool "GIF decoder library"
|
bool "GIF decoder library"
|
||||||
|
|
||||||
config LV_GIF_CACHE_DECODE_DATA
|
config LV_GIF_CACHE_DECODE_DATA
|
||||||
bool "Use extra 16KB RAM to cache decoded data to accerlate"
|
bool "Use extra 16KB RAM to cache decoded data to accelerate"
|
||||||
depends on LV_USE_GIF
|
depends on LV_USE_GIF
|
||||||
|
|
||||||
config LV_BIN_DECODER_RAM_LOAD
|
config LV_BIN_DECODER_RAM_LOAD
|
||||||
@@ -1401,7 +1401,7 @@ menu "LVGL configuration"
|
|||||||
depends on LV_USE_IME_PINYIN
|
depends on LV_USE_IME_PINYIN
|
||||||
default y
|
default y
|
||||||
help
|
help
|
||||||
If you do not use the default thesaurus, be sure to use lv_ime_pinyin after setting the thesauruss
|
If you do not use the default thesaurus, be sure to use lv_ime_pinyin after setting the thesaurus
|
||||||
config LV_IME_PINYIN_CAND_TEXT_NUM
|
config LV_IME_PINYIN_CAND_TEXT_NUM
|
||||||
int "Maximum number of candidate panels"
|
int "Maximum number of candidate panels"
|
||||||
depends on LV_USE_IME_PINYIN
|
depends on LV_USE_IME_PINYIN
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ Our team is ready to help you with graphics design, UI implementation and consul
|
|||||||
- [Multiple display](https://docs.lvgl.io/master/overview/display.html#multiple-display-support) support.
|
- [Multiple display](https://docs.lvgl.io/master/overview/display.html#multiple-display-support) support.
|
||||||
|
|
||||||
**Binding and Build Support**
|
**Binding and Build Support**
|
||||||
- [Micropython Binding](https://blog.lvgl.io/2019-02-20/micropython-bindings) exposes LVGL API
|
- [MicroPython Binding](https://blog.lvgl.io/2019-02-20/micropython-bindings) exposes LVGL API
|
||||||
- [PikaScript Binding](https://blog.lvgl.io/2022-08-24/pikascript-and-lvgl) python on MCU lighter and easier.
|
- [PikaScript Binding](https://blog.lvgl.io/2022-08-24/pikascript-and-lvgl) python on MCU lighter and easier.
|
||||||
- No custom build system is used. You can build LVGL as you build the other files of your project.
|
- No custom build system is used. You can build LVGL as you build the other files of your project.
|
||||||
- Support for Make and [CMake](https://docs.lvgl.io/master/integration/building/cmake.html) is included out of the box.
|
- Support for Make and [CMake](https://docs.lvgl.io/master/integration/building/cmake.html) is included out of the box.
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ extern "C" {
|
|||||||
* but simply the time difference between the start and end of the rendering is measured
|
* but simply the time difference between the start and end of the rendering is measured
|
||||||
*
|
*
|
||||||
* - Flush time: It's the sum of
|
* - Flush time: It's the sum of
|
||||||
* - the time spent in the `fluch_cb` and
|
* - the time spent in the `flush_cb` and
|
||||||
* - the time spent with waiting for flush ready.
|
* - the time spent with waiting for flush ready.
|
||||||
*/
|
*/
|
||||||
void lv_demo_benchmark(void);
|
void lv_demo_benchmark(void);
|
||||||
|
|||||||
@@ -23,5 +23,5 @@ The music player demo shows what kind of modern, smartphone-like user interfaces
|
|||||||
|
|
||||||
## Using spectrum.py
|
## Using spectrum.py
|
||||||
- install `librosa` with `pip3 install librosa`
|
- install `librosa` with `pip3 install librosa`
|
||||||
- run `python sectrum.py my_file.mp3`
|
- run `python spectrum.py my_file.mp3`
|
||||||
- see the result in `spectrum.h`
|
- see the result in `spectrum.h`
|
||||||
|
|||||||
+3
-3
@@ -95,7 +95,7 @@ Fixes
|
|||||||
- **fix(x11): fix assert on delete** `5799 <https://github.com/lvgl/lvgl/pull/5799>`__
|
- **fix(x11): fix assert on delete** `5799 <https://github.com/lvgl/lvgl/pull/5799>`__
|
||||||
- **fix(demo_music): fix the previous button in the music demo is not clickable** `5808 <https://github.com/lvgl/lvgl/pull/5808>`__
|
- **fix(demo_music): fix the previous button in the music demo is not clickable** `5808 <https://github.com/lvgl/lvgl/pull/5808>`__
|
||||||
- **fix(draw): fix non antialiased rgb565a8 transformation** `5782 <https://github.com/lvgl/lvgl/pull/5782>`__
|
- **fix(draw): fix non antialiased rgb565a8 transformation** `5782 <https://github.com/lvgl/lvgl/pull/5782>`__
|
||||||
- **fix(freetpye): fix the problem of incomplete font drawing when setting with italic** `5807 <https://github.com/lvgl/lvgl/pull/5807>`__
|
- **fix(freetype): fix the problem of incomplete font drawing when setting with italic** `5807 <https://github.com/lvgl/lvgl/pull/5807>`__
|
||||||
- **fix(fsdrv): add missing lv_fs_littlefs_init function declaration** `5778 <https://github.com/lvgl/lvgl/pull/5778>`__
|
- **fix(fsdrv): add missing lv_fs_littlefs_init function declaration** `5778 <https://github.com/lvgl/lvgl/pull/5778>`__
|
||||||
- **fix(vg_lite):fix bug for wrong rendering in vertical or horizontal dir** `5789 <https://github.com/lvgl/lvgl/pull/5789>`__
|
- **fix(vg_lite):fix bug for wrong rendering in vertical or horizontal dir** `5789 <https://github.com/lvgl/lvgl/pull/5789>`__
|
||||||
- **fix(env): added *.cpp glob in ESP configuration** `5761 <https://github.com/lvgl/lvgl/pull/5761>`__
|
- **fix(env): added *.cpp glob in ESP configuration** `5761 <https://github.com/lvgl/lvgl/pull/5761>`__
|
||||||
@@ -120,7 +120,7 @@ Fixes
|
|||||||
- **fix(vg_lite): fix the loss of display accuracy of rounded rectangles** `5714 <https://github.com/lvgl/lvgl/pull/5714>`__
|
- **fix(vg_lite): fix the loss of display accuracy of rounded rectangles** `5714 <https://github.com/lvgl/lvgl/pull/5714>`__
|
||||||
- **fix(test): check compiler flag should not contain '_'** `5706 <https://github.com/lvgl/lvgl/pull/5706>`__
|
- **fix(test): check compiler flag should not contain '_'** `5706 <https://github.com/lvgl/lvgl/pull/5706>`__
|
||||||
- **fix(imagebutton): fix the example** `5719 <https://github.com/lvgl/lvgl/pull/5719>`__
|
- **fix(imagebutton): fix the example** `5719 <https://github.com/lvgl/lvgl/pull/5719>`__
|
||||||
- **fix(drm): eliminate use of non-existent lv_api_map.h and enable smoke tests** `5694 <https://github.com/lvgl/lvgl/pull/5694>`__
|
- **fix(drm): eliminate use of nonexistent lv_api_map.h and enable smoke tests** `5694 <https://github.com/lvgl/lvgl/pull/5694>`__
|
||||||
- **fix(test): enable -Wpedantic** `5676 <https://github.com/lvgl/lvgl/pull/5676>`__
|
- **fix(test): enable -Wpedantic** `5676 <https://github.com/lvgl/lvgl/pull/5676>`__
|
||||||
- **fix(pxp): fix issues in pxp cache management callback** `5685 <https://github.com/lvgl/lvgl/pull/5685>`__
|
- **fix(pxp): fix issues in pxp cache management callback** `5685 <https://github.com/lvgl/lvgl/pull/5685>`__
|
||||||
- **fix(windows): improve graphic performance via using high resolution tick count and timer delay implementation** `5711 <https://github.com/lvgl/lvgl/pull/5711>`__
|
- **fix(windows): improve graphic performance via using high resolution tick count and timer delay implementation** `5711 <https://github.com/lvgl/lvgl/pull/5711>`__
|
||||||
@@ -198,7 +198,7 @@ Fixes
|
|||||||
- **fix(lvgl.mk): fix vg_lite_tvg.cpp not compiling** `5435 <https://github.com/lvgl/lvgl/pull/5435>`__
|
- **fix(lvgl.mk): fix vg_lite_tvg.cpp not compiling** `5435 <https://github.com/lvgl/lvgl/pull/5435>`__
|
||||||
- **fix(ci): use the dev branch of PlatformIO** `5432 <https://github.com/lvgl/lvgl/pull/5432>`__
|
- **fix(ci): use the dev branch of PlatformIO** `5432 <https://github.com/lvgl/lvgl/pull/5432>`__
|
||||||
- **fix(vector) : add path bounding and matrix transform functions.** `5389 <https://github.com/lvgl/lvgl/pull/5389>`__
|
- **fix(vector) : add path bounding and matrix transform functions.** `5389 <https://github.com/lvgl/lvgl/pull/5389>`__
|
||||||
- **fix(warning): fix shadown variable warning** `47750f1 <https://github.com/lvgl/lvgl/commit/47750f1b866e5ea0617035fd208c727878bebc44>`__
|
- **fix(warning): fix shadow variable warning** `47750f1 <https://github.com/lvgl/lvgl/commit/47750f1b866e5ea0617035fd208c727878bebc44>`__
|
||||||
- **fix(thorvg): link lvgl_thorvgl with lvgl** `9b09182 <https://github.com/lvgl/lvgl/commit/9b09182fc76032ef0bc8a2d930fa1cf4fd081431>`__
|
- **fix(thorvg): link lvgl_thorvgl with lvgl** `9b09182 <https://github.com/lvgl/lvgl/commit/9b09182fc76032ef0bc8a2d930fa1cf4fd081431>`__
|
||||||
- **fix(warning): error: no newline at end of file** `9a6a194 <https://github.com/lvgl/lvgl/commit/9a6a194680db9ea12f59e94eab6e812cb28d504f>`__
|
- **fix(warning): error: no newline at end of file** `9a6a194 <https://github.com/lvgl/lvgl/commit/9a6a194680db9ea12f59e94eab6e812cb28d504f>`__
|
||||||
- **fix(color): treat RGB565A8 bpp same as RGB565** `52426ec <https://github.com/lvgl/lvgl/commit/52426ec1919274e282889129f00e00a9a2a9ce60>`__
|
- **fix(color): treat RGB565A8 bpp same as RGB565** `52426ec <https://github.com/lvgl/lvgl/commit/52426ec1919274e282889129f00e00a9a2a9ce60>`__
|
||||||
|
|||||||
@@ -218,4 +218,4 @@ Use GPL licensed code
|
|||||||
^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
The GPL license is not compatible with the MIT license. Therefore, LVGL
|
The GPL license is not compatible with the MIT license. Therefore, LVGL
|
||||||
can not accept GPL licensed code.
|
cannot accept GPL licensed code.
|
||||||
|
|||||||
+6
-6
@@ -204,7 +204,7 @@ QT_AUTOBRIEF = NO
|
|||||||
# tag to YES if you prefer the old behavior instead.
|
# tag to YES if you prefer the old behavior instead.
|
||||||
#
|
#
|
||||||
# Note that setting this tag to YES also means that rational rose comments are
|
# Note that setting this tag to YES also means that rational rose comments are
|
||||||
# not recognized any more.
|
# not recognized anymore.
|
||||||
# The default value is: NO.
|
# The default value is: NO.
|
||||||
|
|
||||||
MULTILINE_CPP_IS_BRIEF = NO
|
MULTILINE_CPP_IS_BRIEF = NO
|
||||||
@@ -278,7 +278,7 @@ OPTIMIZE_OUTPUT_VHDL = NO
|
|||||||
# parses. With this tag you can assign which parser to use for a given
|
# parses. With this tag you can assign which parser to use for a given
|
||||||
# extension. Doxygen has a built-in mapping, but you can override or extend it
|
# extension. Doxygen has a built-in mapping, but you can override or extend it
|
||||||
# using this tag. The format is ext=language, where ext is a file extension, and
|
# using this tag. The format is ext=language, where ext is a file extension, and
|
||||||
# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
|
# language is one of the parsers supported by doxygen: IDL, Java, JavaScript,
|
||||||
# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
|
# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
|
||||||
# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
|
# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
|
||||||
# Fortran. In the later case the parser tries to guess whether the code is fixed
|
# Fortran. In the later case the parser tries to guess whether the code is fixed
|
||||||
@@ -520,7 +520,7 @@ INTERNAL_DOCS = YES
|
|||||||
# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
|
# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
|
||||||
# names in lower-case letters. If set to YES, upper-case letters are also
|
# names in lower-case letters. If set to YES, upper-case letters are also
|
||||||
# allowed. This is useful if you have classes or files whose names only differ
|
# allowed. This is useful if you have classes or files whose names only differ
|
||||||
# in case and if your file system supports case sensitive file names. Windows
|
# in case and if your file system supports case-sensitive file names. Windows
|
||||||
# and Mac users are advised to set this option to NO.
|
# and Mac users are advised to set this option to NO.
|
||||||
# The default value is: system dependent.
|
# The default value is: system dependent.
|
||||||
|
|
||||||
@@ -685,7 +685,7 @@ SHOW_NAMESPACES = YES
|
|||||||
# The FILE_VERSION_FILTER tag can be used to specify a program or script that
|
# The FILE_VERSION_FILTER tag can be used to specify a program or script that
|
||||||
# doxygen should invoke to get the current version for each file (typically from
|
# doxygen should invoke to get the current version for each file (typically from
|
||||||
# the version control system). Doxygen will invoke the program by executing (via
|
# the version control system). Doxygen will invoke the program by executing (via
|
||||||
# popen()) the command command input-file, where command is the value of the
|
# popen()) the command input-file, where command is the value of the
|
||||||
# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
|
# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
|
||||||
# by doxygen. Whatever the program writes to standard output is used as the file
|
# by doxygen. Whatever the program writes to standard output is used as the file
|
||||||
# version. For an example see the documentation.
|
# version. For an example see the documentation.
|
||||||
@@ -1487,7 +1487,7 @@ FORMULA_FONTSIZE = 10
|
|||||||
# FORMULA_TRANSPARENT = YES **OBSOLETE**
|
# FORMULA_TRANSPARENT = YES **OBSOLETE**
|
||||||
|
|
||||||
# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
|
# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
|
||||||
# http://www.mathjax.org) which uses client side Javascript for the rendering
|
# http://www.mathjax.org) which uses client side JavaScript for the rendering
|
||||||
# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
|
# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
|
||||||
# installed or if you want to formulas look prettier in the HTML output. When
|
# installed or if you want to formulas look prettier in the HTML output. When
|
||||||
# enabled you may also need to install MathJax separately and configure the path
|
# enabled you may also need to install MathJax separately and configure the path
|
||||||
@@ -1557,7 +1557,7 @@ MATHJAX_CODEFILE =
|
|||||||
SEARCHENGINE = YES
|
SEARCHENGINE = YES
|
||||||
|
|
||||||
# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
|
# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
|
||||||
# implemented using a web server instead of a web client using Javascript. There
|
# implemented using a web server instead of a web client using JavaScript. There
|
||||||
# are two flavors of web server based searching depending on the EXTERNAL_SEARCH
|
# are two flavors of web server based searching depending on the EXTERNAL_SEARCH
|
||||||
# setting. When disabled, doxygen will generate a PHP script for searching and
|
# setting. When disabled, doxygen will generate a PHP script for searching and
|
||||||
# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
|
# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
|
||||||
|
|||||||
+2
-2
@@ -60,7 +60,7 @@ LVGL のシステム要件は、RAM 32KB、Flash
|
|||||||
|
|
||||||
**UIエディタ**\ SquareLine Studio
|
**UIエディタ**\ SquareLine Studio
|
||||||
は、LVGL用のプロフェッショナル&リーズナブルなドラッグ&ドロップ型のUIエディターです。
|
は、LVGL用のプロフェッショナル&リーズナブルなドラッグ&ドロップ型のUIエディターです。
|
||||||
Windows、Linux、MacOS
|
Windows、Linux、macOS
|
||||||
で動作し、ウェブサイトへの登録なしで試すことができます。
|
で動作し、ウェブサイトへの登録なしで試すことができます。
|
||||||
|
|
||||||
**サービス**\ LVGL LLC
|
**サービス**\ LVGL LLC
|
||||||
@@ -103,7 +103,7 @@ Guide <https://docs-lvgl-io.translate.goog/master/porting/project.html?_x_tr_sl=
|
|||||||
`マルチディスプレイ <https://docs-lvgl-io.translate.goog/master/overview/display.html?_x_tr_sl=en&_x_tr_tl=ja&_x_tr_hl=ja>`__
|
`マルチディスプレイ <https://docs-lvgl-io.translate.goog/master/overview/display.html?_x_tr_sl=en&_x_tr_tl=ja&_x_tr_hl=ja>`__
|
||||||
対応。
|
対応。
|
||||||
|
|
||||||
**Binding と Build をサポート** - `Micropython
|
**Binding と Build をサポート** - `MicroPython
|
||||||
Binding <https://blog-lvgl-io.translate.goog/2019-02-20/micropython-bindings?_x_tr_sl=en&_x_tr_tl=ja&_x_tr_hl=ja>`__
|
Binding <https://blog-lvgl-io.translate.goog/2019-02-20/micropython-bindings?_x_tr_sl=en&_x_tr_tl=ja&_x_tr_hl=ja>`__
|
||||||
が LVGL API を公開。 -
|
が LVGL API を公開。 -
|
||||||
カスタムビルドシステムは使用せず、プロジェクトの他のファイルをビルドするときに、LVGLをビルド可能。
|
カスタムビルドシステムは使用せず、プロジェクトの他のファイルをビルドするときに、LVGLをビルド可能。
|
||||||
|
|||||||
+1
-1
@@ -94,7 +94,7 @@ RAM 和 128 KB Flash、C 编译器、帧缓冲区和至少 1/10 屏幕大小的
|
|||||||
|
|
||||||
**绑定和构建支持**
|
**绑定和构建支持**
|
||||||
|
|
||||||
- `Microython 绑定 <https://blog.lvgl.io/2019-02-20/micropython-bindings>`__
|
- `MicroPython 绑定 <https://blog.lvgl.io/2019-02-20/micropython-bindings>`__
|
||||||
公开 LVGL的API
|
公开 LVGL的API
|
||||||
- `PikaScript 绑定 <https://blog.lvgl.io/2022-08-24/pikascript-and-lvgl>`__
|
- `PikaScript 绑定 <https://blog.lvgl.io/2022-08-24/pikascript-and-lvgl>`__
|
||||||
在 MCU 上的更轻更简单的 Python 版本
|
在 MCU 上的更轻更简单的 Python 版本
|
||||||
|
|||||||
+1
-1
@@ -133,7 +133,7 @@ Drawing and rendering
|
|||||||
- |uncheck| Multiple shadow/border
|
- |uncheck| Multiple shadow/border
|
||||||
- |uncheck| Perspective
|
- |uncheck| Perspective
|
||||||
- |uncheck| Text shadow
|
- |uncheck| Text shadow
|
||||||
- |uncheck| Innter shadow
|
- |uncheck| Inner shadow
|
||||||
- |uncheck| ARGB image stroke/grow on the alpha map
|
- |uncheck| ARGB image stroke/grow on the alpha map
|
||||||
- |uncheck| Real time blur
|
- |uncheck| Real time blur
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
# ****************************************************************************
|
# ****************************************************************************
|
||||||
# IMPOTRANT: If you are getting a lexer error for an example you need to check
|
# IMPORTANT: If you are getting a lexer error for an example you need to check
|
||||||
# for extra lines at the end of the file. Only a single empty line
|
# for extra lines at the end of the file. Only a single empty line
|
||||||
# is allowed!!! Ask me how long it took me to figure this out
|
# is allowed!!! Ask me how long it took me to figure this out
|
||||||
# ****************************************************************************
|
# ****************************************************************************
|
||||||
@@ -18,7 +18,7 @@ import config_builder
|
|||||||
import add_translation
|
import add_translation
|
||||||
|
|
||||||
# due to the modifications that take place to the documentation files
|
# due to the modifications that take place to the documentation files
|
||||||
# when the documentaation builds it is better to copy the source files to a
|
# when the documentation builds it is better to copy the source files to a
|
||||||
# temporary folder and modify the copies. Not setting it up this way makes it
|
# temporary folder and modify the copies. Not setting it up this way makes it
|
||||||
# a real headache when making alterations that need to be committed as the
|
# a real headache when making alterations that need to be committed as the
|
||||||
# alterations trigger the files as changed.
|
# alterations trigger the files as changed.
|
||||||
|
|||||||
@@ -345,7 +345,7 @@ Examples
|
|||||||
|
|
||||||
.. _quick-overview_micropython:
|
.. _quick-overview_micropython:
|
||||||
|
|
||||||
Micropython
|
MicroPython
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
Learn more about :ref:`micropython`.
|
Learn more about :ref:`micropython`.
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
.. _micropython:
|
.. _micropython:
|
||||||
|
|
||||||
===========
|
===========
|
||||||
Micropython
|
MicroPython
|
||||||
===========
|
===========
|
||||||
|
|
||||||
What is Micropython?
|
What is MicroPython?
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
`Micropython <http://micropython.org/>`__ is Python for
|
`MicroPython <http://micropython.org/>`__ is Python for
|
||||||
microcontrollers. Using Micropython, you can write Python3 code and run
|
microcontrollers. Using MicroPython, you can write Python3 code and run
|
||||||
it even on a bare metal architecture with limited resources.
|
it even on a bare metal architecture with limited resources.
|
||||||
|
|
||||||
|
|
||||||
Highlights of Micropython
|
Highlights of MicroPython
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
- **Compact**: Fits and runs within just 256k of code space and 16k of RAM. No OS is needed, although you
|
- **Compact**: Fits and runs within just 256k of code space and 16k of RAM. No OS is needed, although you
|
||||||
@@ -34,25 +34,25 @@ Highlights of Micropython
|
|||||||
--------------
|
--------------
|
||||||
|
|
||||||
|
|
||||||
Why Micropython + LVGL?
|
Why MicroPython + LVGL?
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
Micropython `does not have a good native high-level GUI library <https://forum.micropython.org/viewtopic.php?f=18&t=5543>`__.
|
MicroPython `does not have a good native high-level GUI library <https://forum.micropython.org/viewtopic.php?f=18&t=5543>`__.
|
||||||
LVGL is an `Object-Oriented Component Based <https://blog.lvgl.io/2018-12-13/extend-lvgl-objects>`__
|
LVGL is an `Object-Oriented Component Based <https://blog.lvgl.io/2018-12-13/extend-lvgl-objects>`__
|
||||||
high-level GUI library, which seems to be a natural candidate to map into a higher level language, such as Python.
|
high-level GUI library, which seems to be a natural candidate to map into a higher level language, such as Python.
|
||||||
LVGL is implemented in C and its APIs are in C.
|
LVGL is implemented in C and its APIs are in C.
|
||||||
|
|
||||||
|
|
||||||
Here are some advantages of using LVGL in Micropython:
|
Here are some advantages of using LVGL in MicroPython:
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
- Develop GUI in Python, a very popular high level language. Use paradigms such as Object-Oriented Programming.
|
- Develop GUI in Python, a very popular high level language. Use paradigms such as Object-Oriented Programming.
|
||||||
- Usually, GUI development requires multiple iterations to get things right. With C, each iteration consists of
|
- Usually, GUI development requires multiple iterations to get things right. With C, each iteration consists of
|
||||||
**``Change code`` > ``Build`` > ``Flash`` > ``Run``**. In Micropython it's just
|
**``Change code`` > ``Build`` > ``Flash`` > ``Run``**. In MicroPython it's just
|
||||||
**``Change code`` > ``Run``** ! You can even run commands interactively using the
|
**``Change code`` > ``Run``** ! You can even run commands interactively using the
|
||||||
`REPL <https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop>`__ (the interactive prompt)
|
`REPL <https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop>`__ (the interactive prompt)
|
||||||
|
|
||||||
Micropython + LVGL could be used for:
|
MicroPython + LVGL could be used for:
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
- Fast prototyping GUI.
|
- Fast prototyping GUI.
|
||||||
@@ -100,20 +100,20 @@ How can I use it?
|
|||||||
Online Simulator
|
Online Simulator
|
||||||
~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
If you want to experiment with LVGL + Micropython without downloading
|
If you want to experiment with LVGL + MicroPython without downloading
|
||||||
anything - you can use our online simulator! It's a fully functional
|
anything - you can use our online simulator! It's a fully functional
|
||||||
LVGL + Micropython that runs entirely in the browser and allows you to
|
LVGL + MicroPython that runs entirely in the browser and allows you to
|
||||||
edit a python script and run it.
|
edit a python script and run it.
|
||||||
|
|
||||||
`Click here to experiment on the online simulator <https://sim.lvgl.io/>`__
|
`Click here to experiment on the online simulator <https://sim.lvgl.io/>`__
|
||||||
|
|
||||||
Many `LVGL examples <https://docs.lvgl.io/master/examples.html>`__ are available also for Micropython. Just click the link!
|
Many `LVGL examples <https://docs.lvgl.io/master/examples.html>`__ are available also for MicroPython. Just click the link!
|
||||||
|
|
||||||
|
|
||||||
PC Simulator
|
PC Simulator
|
||||||
~~~~~~~~~~~~
|
~~~~~~~~~~~~
|
||||||
|
|
||||||
Micropython is ported to many platforms. One notable port is "unix", which allows you to build and run Micropython
|
MicroPython is ported to many platforms. One notable port is "unix", which allows you to build and run MicroPython
|
||||||
(+LVGL) on a Linux machine. (On a Windows machine you might need Virtual Box or WSL or MinGW or Cygwin etc.)
|
(+LVGL) on a Linux machine. (On a Windows machine you might need Virtual Box or WSL or MinGW or Cygwin etc.)
|
||||||
|
|
||||||
`Click here to know more information about building and running the unix port <https://github.com/lvgl/lv_micropython>`__
|
`Click here to know more information about building and running the unix port <https://github.com/lvgl/lv_micropython>`__
|
||||||
@@ -122,13 +122,13 @@ Micropython is ported to many platforms. One notable port is "unix", which allow
|
|||||||
Embedded Platforms
|
Embedded Platforms
|
||||||
~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
In the end, the goal is to run it all on an embedded platform. Both Micropython and LVGL can be used on many embedded
|
In the end, the goal is to run it all on an embedded platform. Both MicroPython and LVGL can be used on many embedded
|
||||||
architectures. `lv_micropython <https://github.com/lvgl/lv_micropython>`__ is a fork of Micropython+LVGL and currently
|
architectures. `lv_micropython <https://github.com/lvgl/lv_micropython>`__ is a fork of MicroPython+LVGL and currently
|
||||||
supports Linux, ESP32, STM32 and RP2. It can be ported to any other platform supported by Micropython.
|
supports Linux, ESP32, STM32 and RP2. It can be ported to any other platform supported by MicroPython.
|
||||||
|
|
||||||
- You would also need display and input drivers. You can either use one of the existing drivers provided with lv_micropython,
|
- You would also need display and input drivers. You can either use one of the existing drivers provided with lv_micropython,
|
||||||
or you can create your own input/display drivers for your specific hardware.
|
or you can create your own input/display drivers for your specific hardware.
|
||||||
- Drivers can be implemented either in C as a Micropython module, or in pure Python!
|
- Drivers can be implemented either in C as a MicroPython module, or in pure Python!
|
||||||
|
|
||||||
lv_micropython already contains these drivers:
|
lv_micropython already contains these drivers:
|
||||||
|
|
||||||
@@ -165,17 +165,17 @@ Where can I find more information?
|
|||||||
- ``lv_micropython`` `README <https://github.com/lvgl/lv_micropython>`__
|
- ``lv_micropython`` `README <https://github.com/lvgl/lv_micropython>`__
|
||||||
- ``lv_binding_micropython`` `README <https://github.com/lvgl/lv_binding_micropython>`__
|
- ``lv_binding_micropython`` `README <https://github.com/lvgl/lv_binding_micropython>`__
|
||||||
- The `LVGL micropython forum <https://forum.lvgl.io/c/micropython>`__ (Feel free to ask anything!)
|
- The `LVGL micropython forum <https://forum.lvgl.io/c/micropython>`__ (Feel free to ask anything!)
|
||||||
- At Micropython: `docs <http://docs.micropython.org/en/latest/>`__ and `forum <https://forum.micropython.org/>`__
|
- At MicroPython: `docs <http://docs.micropython.org/en/latest/>`__ and `forum <https://forum.micropython.org/>`__
|
||||||
- `Blog Post <https://blog.lvgl.io/2019-02-20/micropython-bindings>`__, a little outdated.
|
- `Blog Post <https://blog.lvgl.io/2019-02-20/micropython-bindings>`__, a little outdated.
|
||||||
|
|
||||||
|
|
||||||
The Micropython Binding is auto generated!
|
The MicroPython Binding is auto generated!
|
||||||
------------------------------------------
|
------------------------------------------
|
||||||
|
|
||||||
- LVGL is a git submodule inside `lv_micropython <https://github.com/lvgl/lv_micropython>`__
|
- LVGL is a git submodule inside `lv_micropython <https://github.com/lvgl/lv_micropython>`__
|
||||||
(LVGL is a git submodule of `lv_binding_micropython <https://github.com/lvgl/lv_binding_micropython>`__
|
(LVGL is a git submodule of `lv_binding_micropython <https://github.com/lvgl/lv_binding_micropython>`__
|
||||||
which is itself a submodule of `lv_micropython <https://github.com/lvgl/lv_micropython>`__).
|
which is itself a submodule of `lv_micropython <https://github.com/lvgl/lv_micropython>`__).
|
||||||
- When building lv_micropython, the public LVGL C API is scanned and Micropython API is auto-generated. That means that
|
- When building lv_micropython, the public LVGL C API is scanned and MicroPython API is auto-generated. That means that
|
||||||
lv_micropython provides LVGL API for **any** LVGL version, and generally does not require code changes as LVGL evolves.
|
lv_micropython provides LVGL API for **any** LVGL version, and generally does not require code changes as LVGL evolves.
|
||||||
|
|
||||||
|
|
||||||
@@ -189,7 +189,7 @@ For a summary of coding conventions to follow see the :ref:`coding-style`.
|
|||||||
Memory Management
|
Memory Management
|
||||||
~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
| When LVGL runs in Micropython, all dynamic memory allocations (:cpp:func:`lv_malloc`) are handled by Micropython's memory
|
| When LVGL runs in MicroPython, all dynamic memory allocations (:cpp:func:`lv_malloc`) are handled by MicroPython's memory
|
||||||
manager which is `garbage-collected <https://en.wikipedia.org/wiki/Garbage_collection_(computer_science)>`__ (GC).
|
manager which is `garbage-collected <https://en.wikipedia.org/wiki/Garbage_collection_(computer_science)>`__ (GC).
|
||||||
| To prevent GC from collecting memory prematurely, all dynamic allocated RAM must be reachable by GC.
|
| To prevent GC from collecting memory prematurely, all dynamic allocated RAM must be reachable by GC.
|
||||||
| GC is aware of most allocations, except from pointers on the `Data Segment <https://en.wikipedia.org/wiki/Data_segment>`__:
|
| GC is aware of most allocations, except from pointers on the `Data Segment <https://en.wikipedia.org/wiki/Data_segment>`__:
|
||||||
@@ -230,18 +230,18 @@ More Information
|
|||||||
Callbacks
|
Callbacks
|
||||||
~~~~~~~~~
|
~~~~~~~~~
|
||||||
|
|
||||||
In C a callback is just a function pointer. But in Micropython we need to register a *Micropython callable object* for each
|
In C a callback is just a function pointer. But in MicroPython we need to register a *MicroPython callable object* for each
|
||||||
callback. Therefore in the Micropython binding we need to register both a function pointer and a Micropython object for every callback.
|
callback. Therefore in the MicroPython binding we need to register both a function pointer and a MicroPython object for every callback.
|
||||||
|
|
||||||
Therefore we defined a **callback convention** for the LVGL C API that expects lvgl headers to be defined in a certain
|
Therefore we defined a **callback convention** for the LVGL C API that expects lvgl headers to be defined in a certain
|
||||||
way. Callbacks that are declared according to the convention would allow the binding to register a Micropython object
|
way. Callbacks that are declared according to the convention would allow the binding to register a MicroPython object
|
||||||
next to the function pointer when registering a callback, and access that object when the callback is called.
|
next to the function pointer when registering a callback, and access that object when the callback is called.
|
||||||
|
|
||||||
- The basic idea is that we have ``void * user_data`` field that is used automatically by the Micropython Binding
|
- The basic idea is that we have ``void * user_data`` field that is used automatically by the MicroPython Binding
|
||||||
to save the *Micropython callable object* for a callback. This field must be provided when registering the function
|
to save the *MicroPython callable object* for a callback. This field must be provided when registering the function
|
||||||
pointer, and provided to the callback function itself.
|
pointer, and provided to the callback function itself.
|
||||||
- Although called "user_data", the user is not expected to read/write that field. Instead, the Micropython glue code uses
|
- Although called "user_data", the user is not expected to read/write that field. Instead, the MicroPython glue code uses
|
||||||
``user_data`` to automatically keep track of the Micropython callable object. The glue code updates it when the callback
|
``user_data`` to automatically keep track of the MicroPython callable object. The glue code updates it when the callback
|
||||||
is registered, and uses it when the callback is called in order to invoke a call to the original callable object.
|
is registered, and uses it when the callback is called in order to invoke a call to the original callable object.
|
||||||
|
|
||||||
There are a few options for defining a callback in LVGL C API:
|
There are a few options for defining a callback in LVGL C API:
|
||||||
|
|||||||
@@ -32,10 +32,10 @@ Why PikaScript + LVGL ?
|
|||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
PikaScript now supports the main features of LVGL8, and these APIs are
|
PikaScript now supports the main features of LVGL8, and these APIs are
|
||||||
fully compatible with Micropython!
|
fully compatible with MicroPython!
|
||||||
|
|
||||||
This means that you can continue to use already written code from
|
This means that you can continue to use already written code from
|
||||||
Micropython, and then use less code space and RAM.
|
MicroPython, and then use less code space and RAM.
|
||||||
|
|
||||||
Enjoy detailed code hints down to the parameter type for a better
|
Enjoy detailed code hints down to the parameter type for a better
|
||||||
programming experience
|
programming experience
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ Overview
|
|||||||
This project uses CMakePresets to ensure an easy build. Find out more on Cmake Presets here:
|
This project uses CMakePresets to ensure an easy build. Find out more on Cmake Presets here:
|
||||||
https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html
|
https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html
|
||||||
|
|
||||||
Prerequsites
|
Prerequisites
|
||||||
------------
|
-------------
|
||||||
You need to install
|
You need to install
|
||||||
|
|
||||||
- CMake
|
- CMake
|
||||||
@@ -46,7 +46,7 @@ When hitting the generate button, CMake will create solution files (for VS) or N
|
|||||||
The following targets are available.
|
The following targets are available.
|
||||||
|
|
||||||
- lvgl (the actual library, required)
|
- lvgl (the actual library, required)
|
||||||
- lvgl_thorvg (an vector grafics extension, optional)
|
- lvgl_thorvg (an vector graphics extension, optional)
|
||||||
- lvgl_examples (example usages, optional)
|
- lvgl_examples (example usages, optional)
|
||||||
- lvgl_demos (some demos, optional)
|
- lvgl_demos (some demos, optional)
|
||||||
|
|
||||||
@@ -62,7 +62,7 @@ Build with Command line
|
|||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
You can also build your project using the command line.
|
You can also build your project using the command line.
|
||||||
Run the follwoing commands
|
Run the following commands
|
||||||
|
|
||||||
- cmake --preset windows-base
|
- cmake --preset windows-base
|
||||||
- cmake --build --preset windows-base_dbg
|
- cmake --build --preset windows-base_dbg
|
||||||
|
|||||||
@@ -351,7 +351,7 @@ Supported draw tasks are available in "src/draw/nxp/pxp/lv_draw_vglite.c":
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
All the below opration can be done in addition with optional opacity.
|
All the below operation can be done in addition with optional opacity.
|
||||||
- Fill area with color (w/ radius or gradient).
|
- Fill area with color (w/ radius or gradient).
|
||||||
- Blit source image (any format from `_vglite_src_cf_supported()`) over
|
- Blit source image (any format from `_vglite_src_cf_supported()`) over
|
||||||
destination (any format from `_vglite_dest_cf_supported()`).
|
destination (any format from `_vglite_dest_cf_supported()`).
|
||||||
|
|||||||
@@ -7,11 +7,11 @@ Overview
|
|||||||
|
|
||||||
From the `Wikipedia <https://en.wikipedia.org/wiki/MIPI_Alliance>`__:
|
From the `Wikipedia <https://en.wikipedia.org/wiki/MIPI_Alliance>`__:
|
||||||
|
|
||||||
`MIPI Allience <https://www.mipi.org/>`__ is a global business alliance that develops technical specifications
|
`MIPI Alliance <https://www.mipi.org/>`__ is a global business alliance that develops technical specifications
|
||||||
for the mobile ecosystem, particularly smart phones but including mobile-influenced industries. MIPI was founded in 2003 by Arm, Intel, Nokia, Samsung,
|
for the mobile ecosystem, particularly smart phones but including mobile-influenced industries. MIPI was founded in 2003 by Arm, Intel, Nokia, Samsung,
|
||||||
STMicroelectronics and Texas Instruments.
|
STMicroelectronics and Texas Instruments.
|
||||||
|
|
||||||
MIPI Allience published a series of specifications related to display devices, including DBI (Display Bus Interface), DSI (Display Serial Interface) and DCS
|
MIPI Alliance published a series of specifications related to display devices, including DBI (Display Bus Interface), DSI (Display Serial Interface) and DCS
|
||||||
(Display Command Set). Usually when one talks about a MIPI-compatible display, one thinks of a device with a DSI serial interface. However, the Display Bus Interface specification
|
(Display Command Set). Usually when one talks about a MIPI-compatible display, one thinks of a device with a DSI serial interface. However, the Display Bus Interface specification
|
||||||
includes a number of other, legacy interfaces, like SPI serial, or i8080-compatible parallel interface, which are often used to interface LCD displays to lower-end microcontrollers.
|
includes a number of other, legacy interfaces, like SPI serial, or i8080-compatible parallel interface, which are often used to interface LCD displays to lower-end microcontrollers.
|
||||||
Furthermore, the DCS specification contains a standard command set, which is supported by a large number of legacy TFT LCD controllers, including the popular Sitronix
|
Furthermore, the DCS specification contains a standard command set, which is supported by a large number of legacy TFT LCD controllers, including the popular Sitronix
|
||||||
|
|||||||
@@ -50,7 +50,8 @@ The following code demonstrates using the diver in :cpp:enumerator:`LV_DISPLAY_R
|
|||||||
lv_display_set_default(disp);
|
lv_display_set_default(disp);
|
||||||
|
|
||||||
To use the driver in :cpp:enumerator:`LV_DISPLAY_RENDER_MODE_PARTIAL` mode, an extra buffer must be allocated,
|
To use the driver in :cpp:enumerator:`LV_DISPLAY_RENDER_MODE_PARTIAL` mode, an extra buffer must be allocated,
|
||||||
desirably in the fastest available memory region.
|
preferably in the fastest available memory region.
|
||||||
|
|
||||||
Buffer swapping can be activated by passing a second buffer of same size instead of the :cpp:expr:`NULL` argument.
|
Buffer swapping can be activated by passing a second buffer of same size instead of the :cpp:expr:`NULL` argument.
|
||||||
|
|
||||||
.. code:: c
|
.. code:: c
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ also introduced the Berry scripting language, a small-footprint language
|
|||||||
similar to Python and fully integrated in Tasmota.
|
similar to Python and fully integrated in Tasmota.
|
||||||
|
|
||||||
A comprehensive mapping of LVGL in Berry language is now available,
|
A comprehensive mapping of LVGL in Berry language is now available,
|
||||||
similar to the mapping of Micropython. It allows to use +98% of all LVGL
|
similar to the mapping of MicroPython. It allows to use +98% of all LVGL
|
||||||
features. It is also possible to write custom widgets in Berry.
|
features. It is also possible to write custom widgets in Berry.
|
||||||
|
|
||||||
Versions supported: LVGL v8.0.2, LodePNG v20201017, Freetype 2.10.4
|
Versions supported: LVGL v8.0.2, LodePNG v20201017, Freetype 2.10.4
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ Built-in drivers
|
|||||||
LVGL comes with several `built-in drivers <https://docs.lvgl.io/master/integration/driver/index.html>`__.
|
LVGL comes with several `built-in drivers <https://docs.lvgl.io/master/integration/driver/index.html>`__.
|
||||||
|
|
||||||
Even if a simulator project comes with e.g. SDL, you can easily replace it by enabling
|
Even if a simulator project comes with e.g. SDL, you can easily replace it by enabling
|
||||||
an other driver in ``lv_conf.h`` and calling its ``create`` function.
|
another driver in ``lv_conf.h`` and calling its ``create`` function.
|
||||||
|
|
||||||
For example to use the Linux frame buffer device instead of SDL just enable ``LV_USE_LINUX_FBDEV``
|
For example to use the Linux frame buffer device instead of SDL just enable ``LV_USE_LINUX_FBDEV``
|
||||||
and call
|
and call
|
||||||
|
|||||||
@@ -120,7 +120,7 @@ This way even if a wrapper item is used on the grid and can be made "transparent
|
|||||||
|
|
||||||
Limitations:
|
Limitations:
|
||||||
|
|
||||||
- The sub grid is resolved only in one level depth. That is a grid can have a sub grid children, but a sub grid can't have an other sub grid.
|
- The sub grid is resolved only in one level depth. That is a grid can have a sub grid children, but a sub grid can't have another sub grid.
|
||||||
- ``LV_GRID_CONTENT`` tracks on the are not handled in the sub grid, only in the its own grid.
|
- ``LV_GRID_CONTENT`` tracks on the are not handled in the sub grid, only in the its own grid.
|
||||||
|
|
||||||
The sub grid feature works the same as in CSS. For further reference see `this description <https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_grid_layout/Subgrid>`__.
|
The sub grid feature works the same as in CSS. For further reference see `this description <https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_grid_layout/Subgrid>`__.
|
||||||
|
|||||||
+1
-1
@@ -38,7 +38,7 @@ Limitations
|
|||||||
Use GIMP to save the image in the required format. Both RGB888 and
|
Use GIMP to save the image in the required format. Both RGB888 and
|
||||||
ARGB888 works with :c:macro:`LV_COLOR_DEPTH` ``32``
|
ARGB888 works with :c:macro:`LV_COLOR_DEPTH` ``32``
|
||||||
- Palette is not supported.
|
- Palette is not supported.
|
||||||
- Because not the whole image is read in can not be zoomed or rotated.
|
- Because not the whole image is read in cannot be zoomed or rotated.
|
||||||
|
|
||||||
.. _bmp_example:
|
.. _bmp_example:
|
||||||
|
|
||||||
|
|||||||
@@ -124,7 +124,7 @@ these examples:
|
|||||||
The default animation mode is **play forward with loop**.
|
The default animation mode is **play forward with loop**.
|
||||||
|
|
||||||
If you don't enable looping, a :cpp:enumerator:`LV_EVENT_READY` is sent when the
|
If you don't enable looping, a :cpp:enumerator:`LV_EVENT_READY` is sent when the
|
||||||
animation can not make more progress without looping.
|
animation cannot make more progress without looping.
|
||||||
|
|
||||||
To get the number of frames in an animation or the current frame index,
|
To get the number of frames in an animation or the current frame index,
|
||||||
you can cast the :c:struct:`lv_obj_t` instance to a :c:struct:`lv_rlottie_t` instance
|
you can cast the :c:struct:`lv_obj_t` instance to a :c:struct:`lv_rlottie_t` instance
|
||||||
|
|||||||
@@ -223,7 +223,7 @@ horizontally:
|
|||||||
|
|
||||||
lv_obj_align_to(label, btn, LV_ALIGN_OUT_TOP_MID, 0, -10);
|
lv_obj_align_to(label, btn, LV_ALIGN_OUT_TOP_MID, 0, -10);
|
||||||
|
|
||||||
Note that, unlike with :cpp:func:`lv_obj_align`, :cpp:func:`lv_obj_align_to` can not
|
Note that, unlike with :cpp:func:`lv_obj_align`, :cpp:func:`lv_obj_align_to` cannot
|
||||||
realign the object if its coordinates or the reference object's
|
realign the object if its coordinates or the reference object's
|
||||||
coordinates change.
|
coordinates change.
|
||||||
|
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ The following style properties trigger the creation of a "Simple layer":
|
|||||||
|
|
||||||
In this case widget will be sliced into ``LV_DRAW_SW_LAYER_SIMPLE_BUF_SIZE`` sized chunks.
|
In this case widget will be sliced into ``LV_DRAW_SW_LAYER_SIMPLE_BUF_SIZE`` sized chunks.
|
||||||
|
|
||||||
If there is no memory for a new chunk, LVGL will try allocating layer when an other chunk is rendered and freed.
|
If there is no memory for a new chunk, LVGL will try allocating layer when another chunk is rendered and freed.
|
||||||
|
|
||||||
|
|
||||||
Transformed layer
|
Transformed layer
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ Arm-2D accelerates LVGL9 with two modes: **Synchronous Mode** and
|
|||||||
- When Arm-2D backed 2D-GPUs are available, for example, **DMAC-350 based 2D
|
- When Arm-2D backed 2D-GPUs are available, for example, **DMAC-350 based 2D
|
||||||
GPUs**, it is recommend to use **Asynchronous Mode** to accelerate LVGL.
|
GPUs**, it is recommend to use **Asynchronous Mode** to accelerate LVGL.
|
||||||
|
|
||||||
Arm-2D is an open-source project on Github. For more, please refer to:
|
Arm-2D is an open-source project on GitHub. For more, please refer to:
|
||||||
https://github.com/ARM-software/Arm-2D.
|
https://github.com/ARM-software/Arm-2D.
|
||||||
|
|
||||||
How to Use
|
How to Use
|
||||||
@@ -47,7 +47,7 @@ LVGL (sometimes worse) for regular Cortex-M processors.
|
|||||||
- The target processors support
|
- The target processors support
|
||||||
`Helium <https://developer.arm.com/documentation/102102/0103/?lang=en>`__.
|
`Helium <https://developer.arm.com/documentation/102102/0103/?lang=en>`__.
|
||||||
- The device vendor provides an arm-2d compliant driver for their
|
- The device vendor provides an arm-2d compliant driver for their
|
||||||
propriotory 2D accelerators and/or ACI(Arm Customized Instruction).
|
proprietary 2D accelerators and/or ACI(Arm Customized Instruction).
|
||||||
- The target device contains
|
- The target device contains
|
||||||
`DMAC-350 <https://community.arm.com/arm-community-blogs/b/internet-of-things-blog/posts/arm-corelink-dma-350-next-generation-direct-memory-access-for-endpoint-ai>`__
|
`DMAC-350 <https://community.arm.com/arm-community-blogs/b/internet-of-things-blog/posts/arm-corelink-dma-350-next-generation-direct-memory-access-for-endpoint-ai>`__
|
||||||
|
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ The scroll momentum can be enabled/disabled with the
|
|||||||
Elastic scroll
|
Elastic scroll
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
Normally an object can't be scrolled past the extremeties of its
|
Normally an object can't be scrolled past the extremities of its
|
||||||
content. That is the top side of the content can't be below the top side
|
content. That is the top side of the content can't be below the top side
|
||||||
of the object.
|
of the object.
|
||||||
|
|
||||||
|
|||||||
@@ -931,7 +931,7 @@ Defines how to align the tracks of the flow
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
### flex_grow
|
### flex_grow
|
||||||
Defines how mayn space to take proprtionally the free space of the object's trach
|
Defines how much space to take proportionally from the free space of the object's track
|
||||||
<ul>
|
<ul>
|
||||||
<li style='display:inline; margin-right: 20px; margin-left: 0px'><strong>Default</strong> `LV_FLEX_ALIGN_ROW`</li>
|
<li style='display:inline; margin-right: 20px; margin-left: 0px'><strong>Default</strong> `LV_FLEX_ALIGN_ROW`</li>
|
||||||
<li style='display:inline; margin-right: 20px; margin-left: 0px'><strong>Inherited</strong> No</li>
|
<li style='display:inline; margin-right: 20px; margin-left: 0px'><strong>Inherited</strong> No</li>
|
||||||
|
|||||||
@@ -1456,7 +1456,7 @@ Defines how to align the tracks of the flow
|
|||||||
flex_grow
|
flex_grow
|
||||||
~~~~~~~~~
|
~~~~~~~~~
|
||||||
|
|
||||||
Defines how mayn space to take proprtionally the free space of the object's trach
|
Defines how much space to take proportionally from the free space of the object's track
|
||||||
|
|
||||||
.. raw:: html
|
.. raw:: html
|
||||||
|
|
||||||
|
|||||||
@@ -205,7 +205,7 @@ Property set functions looks like this:
|
|||||||
|
|
||||||
static lv_style_t style_btn_red;
|
static lv_style_t style_btn_red;
|
||||||
lv_style_init(&style_btn_red);
|
lv_style_init(&style_btn_red);
|
||||||
lv_style_set_bg_color(&style_btn_red, lv_plaette_main(LV_PALETTE_RED));
|
lv_style_set_bg_color(&style_btn_red, lv_palette_main(LV_PALETTE_RED));
|
||||||
lv_style_set_bg_opa(&style_btn_red, LV_OPA_COVER);
|
lv_style_set_bg_opa(&style_btn_red, LV_OPA_COVER);
|
||||||
|
|
||||||
To remove a property use:
|
To remove a property use:
|
||||||
@@ -249,7 +249,7 @@ Styles can be built as ``const`` too to save RAM:
|
|||||||
LV_STYLE_CONST_INIT(style1, style1_props);
|
LV_STYLE_CONST_INIT(style1, style1_props);
|
||||||
|
|
||||||
Later ``const`` style can be used like any other style but (obviously)
|
Later ``const`` style can be used like any other style but (obviously)
|
||||||
new properties can not be added.
|
new properties cannot be added.
|
||||||
|
|
||||||
.. _styles_add_remove:
|
.. _styles_add_remove:
|
||||||
|
|
||||||
@@ -457,7 +457,7 @@ configured by the following properties in ``lv_conf.h``:
|
|||||||
- :cpp:enumerator:`LV_LAYER_SIMPLE_BUF_SIZE`: [bytes] the optimal target buffer size. LVGL will try to allocate this size of memory.
|
- :cpp:enumerator:`LV_LAYER_SIMPLE_BUF_SIZE`: [bytes] the optimal target buffer size. LVGL will try to allocate this size of memory.
|
||||||
- :cpp:enumerator:`LV_LAYER_SIMPLE_FALLBACK_BUF_SIZE`: [bytes] used if :cpp:enumerator:`LV_LAYER_SIMPLE_BUF_SIZE` couldn't be allocated.
|
- :cpp:enumerator:`LV_LAYER_SIMPLE_FALLBACK_BUF_SIZE`: [bytes] used if :cpp:enumerator:`LV_LAYER_SIMPLE_BUF_SIZE` couldn't be allocated.
|
||||||
|
|
||||||
If transformation properties were also used the layer can not be
|
If transformation properties were also used the layer cannot be
|
||||||
rendered in chunks, but one larger memory needs to be allocated. The
|
rendered in chunks, but one larger memory needs to be allocated. The
|
||||||
required memory depends on the angle, zoom and pivot parameters, and the
|
required memory depends on the angle, zoom and pivot parameters, and the
|
||||||
size of the area to redraw, but it's never larger than the size of the
|
size of the area to redraw, but it's never larger than the size of the
|
||||||
|
|||||||
@@ -234,7 +234,7 @@ If you have multiple displays call :cpp:expr:`lv_display_set_default(disp1)` to
|
|||||||
select the display to refresh before :cpp:expr:`_lv_display_refr_timer(NULL)`.
|
select the display to refresh before :cpp:expr:`_lv_display_refr_timer(NULL)`.
|
||||||
|
|
||||||
|
|
||||||
.. note:: that :cpp:func:`lv_timer_handler` and :cpp:func:`_lv_display_refr_timer` can not run at the same time.
|
.. note:: that :cpp:func:`lv_timer_handler` and :cpp:func:`_lv_display_refr_timer` cannot run at the same time.
|
||||||
|
|
||||||
|
|
||||||
If the performance monitor is enabled, the value of :c:macro:`LV_DEF_REFR_PERIOD` needs to be set to be
|
If the performance monitor is enabled, the value of :c:macro:`LV_DEF_REFR_PERIOD` needs to be set to be
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ Dispatching
|
|||||||
While collecting draw tasks LVGL frequently tries to dispatch the collected draw tasks to the draw units.
|
While collecting draw tasks LVGL frequently tries to dispatch the collected draw tasks to the draw units.
|
||||||
This handles via the ``dispatch_cb`` of the draw units.
|
This handles via the ``dispatch_cb`` of the draw units.
|
||||||
|
|
||||||
If a draw unit is busy with an other draw task, it just returns. However, it is available it can take a draw task.
|
If a draw unit is busy with another draw task, it just returns. However, it is available it can take a draw task.
|
||||||
|
|
||||||
:cpp:expr:`lv_draw_get_next_available_task(layer, previous_task, draw_unit_id)` is a useful helper function which
|
:cpp:expr:`lv_draw_get_next_available_task(layer, previous_task, draw_unit_id)` is a useful helper function which
|
||||||
returns an available draw task. "Available draw task" means that, all the draw tasks which should be drawn under a draw task
|
returns an available draw task. "Available draw task" means that, all the draw tasks which should be drawn under a draw task
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ To get the steps in an event callback use :cpp:func:`int32_t diff = lv_event_get
|
|||||||
|
|
||||||
The rotary sensitivity can be adjusted on 2 levels:
|
The rotary sensitivity can be adjusted on 2 levels:
|
||||||
|
|
||||||
1. In the input device by the `indev->rotary_sensitvity` element (1/256 unit)
|
1. In the input device by the `indev->rotary_sensitivity` element (1/256 unit)
|
||||||
2. By the `rotary_sensitivity` style property in the widget (1/256 unit)
|
2. By the `rotary_sensitivity` style property in the widget (1/256 unit)
|
||||||
|
|
||||||
The final diff is calculated like this:
|
The final diff is calculated like this:
|
||||||
@@ -289,7 +289,7 @@ You can do this in the following way:
|
|||||||
/*Call this anywhere you want to read the input device*/
|
/*Call this anywhere you want to read the input device*/
|
||||||
lv_indev_read(indev);
|
lv_indev_read(indev);
|
||||||
|
|
||||||
.. note:: that :cpp:func:`lv_indev_read`, :cpp:func:`lv_timer_handler` and :cpp:func:`_lv_display_refr_timer` can not run at the same time.
|
.. note:: that :cpp:func:`lv_indev_read`, :cpp:func:`lv_timer_handler` and :cpp:func:`_lv_display_refr_timer` cannot run at the same time.
|
||||||
|
|
||||||
.. note:: For devices in event-driven mode, `data->continue_reading` is ignored.
|
.. note:: For devices in event-driven mode, `data->continue_reading` is ignored.
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -27,7 +27,7 @@ LVGL has a built-in mutex which can be used with:
|
|||||||
- :cpp:func:`lv_unlock()`
|
- :cpp:func:`lv_unlock()`
|
||||||
|
|
||||||
These functions are called internally in :cpp:func:`lv_timer_handler`
|
These functions are called internally in :cpp:func:`lv_timer_handler`
|
||||||
and the users need to call them only from their own therads.
|
and the users need to call them only from their own threads.
|
||||||
|
|
||||||
To enable ``lv_lock/lv_unlock`` ``LV_USE_OS`` needs to be set to other
|
To enable ``lv_lock/lv_unlock`` ``LV_USE_OS`` needs to be set to other
|
||||||
than ``LV_OS_NONE``.
|
than ``LV_OS_NONE``.
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ For integration with CMake take a look this section of the
|
|||||||
Other platforms and tools
|
Other platforms and tools
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
The `Get started </integartion/index>`__ section contains many platform
|
The `Get started </integration/index>`__ section contains many platform
|
||||||
specific descriptions e.g. for ESP32, Arduino, NXP, RT-Thread, NuttX,
|
specific descriptions e.g. for ESP32, Arduino, NXP, RT-Thread, NuttX,
|
||||||
etc.
|
etc.
|
||||||
|
|
||||||
|
|||||||
@@ -133,7 +133,7 @@ Some aspects of the scrolling animations in long modes
|
|||||||
:cpp:enumerator:`LV_LABEL_LONG_SCROLL` and :cpp:enumerator:`LV_LABEL_LONG_SCROLL_CIRCULAR` can be
|
:cpp:enumerator:`LV_LABEL_LONG_SCROLL` and :cpp:enumerator:`LV_LABEL_LONG_SCROLL_CIRCULAR` can be
|
||||||
customized by setting the animation property of a style, using
|
customized by setting the animation property of a style, using
|
||||||
:cpp:func:`lv_style_set_anim`.
|
:cpp:func:`lv_style_set_anim`.
|
||||||
It will be treated as a template which will be used to create the scroll animatins.
|
It will be treated as a template which will be used to create the scroll animations.
|
||||||
|
|
||||||
.. _lv_label_symbols:
|
.. _lv_label_symbols:
|
||||||
|
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ To create a spinner use
|
|||||||
:cpp:expr:`lv_spinner_create(parent)`.
|
:cpp:expr:`lv_spinner_create(parent)`.
|
||||||
|
|
||||||
Using :cpp:expr:`lv_spinner_set_anim_params(spinner, spin_duration, angle)` the duration
|
Using :cpp:expr:`lv_spinner_set_anim_params(spinner, spin_duration, angle)` the duration
|
||||||
of one revulation and the length of he arc can be customized.
|
of one revolution and the length of he arc can be customized.
|
||||||
|
|
||||||
.. _lv_spinner_events:
|
.. _lv_spinner_events:
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ add_library(lvgl_interface INTERFACE)
|
|||||||
# ${SOURCES} must NOT be given to add_library directly for some reason (won't be
|
# ${SOURCES} must NOT be given to add_library directly for some reason (won't be
|
||||||
# built)
|
# built)
|
||||||
target_sources(lvgl_interface INTERFACE ${SOURCES})
|
target_sources(lvgl_interface INTERFACE ${SOURCES})
|
||||||
# Micropython builds with -Werror; we need to suppress some warnings, such as:
|
# MicroPython builds with -Werror; we need to suppress some warnings, such as:
|
||||||
#
|
#
|
||||||
# /home/test/build/lv_micropython/ports/rp2/build-PICO/lv_mp.c:29316:16: error:
|
# /home/test/build/lv_micropython/ports/rp2/build-PICO/lv_mp.c:29316:16: error:
|
||||||
# 'lv_style_transition_dsc_t_path_xcb_callback' defined but not used
|
# 'lv_style_transition_dsc_t_path_xcb_callback' defined but not used
|
||||||
|
|||||||
@@ -99,15 +99,15 @@
|
|||||||
</release>
|
</release>
|
||||||
<release date="2022-11-28" version="1.0.11" url="https://github.com/lvgl/lvgl/raw/f433ed62248cafd915848ff4d0720f97fb0fc7fd/env_support/cmsis-pack/LVGL.lvgl.1.0.11.pack">
|
<release date="2022-11-28" version="1.0.11" url="https://github.com/lvgl/lvgl/raw/f433ed62248cafd915848ff4d0720f97fb0fc7fd/env_support/cmsis-pack/LVGL.lvgl.1.0.11.pack">
|
||||||
- LVGL 9.0.0-dev
|
- LVGL 9.0.0-dev
|
||||||
- Montyly update for November
|
- Monthly update for November
|
||||||
</release>
|
</release>
|
||||||
<release date="2022-10-31" version="1.0.10" url="https://github.com/lvgl/lvgl/raw/0738d1ac36387c1ad5b6bf6f478bc315817bc34e/env_support/cmsis-pack/LVGL.lvgl.1.0.10.pack">
|
<release date="2022-10-31" version="1.0.10" url="https://github.com/lvgl/lvgl/raw/0738d1ac36387c1ad5b6bf6f478bc315817bc34e/env_support/cmsis-pack/LVGL.lvgl.1.0.10.pack">
|
||||||
- LVGL 9.0.0-dev
|
- LVGL 9.0.0-dev
|
||||||
- Montyly update for October
|
- Monthly update for October
|
||||||
</release>
|
</release>
|
||||||
<release date="2022-09-16" version="1.0.9" url="https://github.com/lvgl/lvgl/raw/df7d5859f4f4886cb0320f2af1898c350e0ecd2a/env_support/cmsis-pack/LVGL.lvgl.1.0.9.pack">
|
<release date="2022-09-16" version="1.0.9" url="https://github.com/lvgl/lvgl/raw/df7d5859f4f4886cb0320f2af1898c350e0ecd2a/env_support/cmsis-pack/LVGL.lvgl.1.0.9.pack">
|
||||||
- LVGL 9.0.0-dev
|
- LVGL 9.0.0-dev
|
||||||
- Montyly update for September
|
- Monthly update for September
|
||||||
- Introduce a new component: File Explorer
|
- Introduce a new component: File Explorer
|
||||||
- Add support for TTF (Tiny TTF)
|
- Add support for TTF (Tiny TTF)
|
||||||
- Add GPU Support for GD32F450-IPA
|
- Add GPU Support for GD32F450-IPA
|
||||||
@@ -115,7 +115,7 @@
|
|||||||
<release date="2022-08-30" version="1.0.8" url="https://github.com/lvgl/lvgl/raw/eb2e296d23b009aca7daf0e9be062d05b4b0048a/env_support/cmsis-pack/LVGL.lvgl.1.0.8.pack">
|
<release date="2022-08-30" version="1.0.8" url="https://github.com/lvgl/lvgl/raw/eb2e296d23b009aca7daf0e9be062d05b4b0048a/env_support/cmsis-pack/LVGL.lvgl.1.0.8.pack">
|
||||||
- LVGL 9.0.0-dev
|
- LVGL 9.0.0-dev
|
||||||
- Add the binding for pikascript (an ultra-light-weight python VM)
|
- Add the binding for pikascript (an ultra-light-weight python VM)
|
||||||
- Montyly update for August
|
- Monthly update for August
|
||||||
</release>
|
</release>
|
||||||
<release date="2022-07-29" version="1.0.7" url="https://github.com/lvgl/lvgl/raw/b454a66e0be85976385c81cf9c9025f272a66f5d/env_support/cmsis-pack/LVGL.lvgl.1.0.7.pack">
|
<release date="2022-07-29" version="1.0.7" url="https://github.com/lvgl/lvgl/raw/b454a66e0be85976385c81cf9c9025f272a66f5d/env_support/cmsis-pack/LVGL.lvgl.1.0.7.pack">
|
||||||
- LVGL 9.0.0-dev
|
- LVGL 9.0.0-dev
|
||||||
@@ -171,7 +171,7 @@
|
|||||||
<!-- keywords for indexing -->
|
<!-- keywords for indexing -->
|
||||||
<keyword>Cortex-M</keyword>
|
<keyword>Cortex-M</keyword>
|
||||||
<keyword>SysTick</keyword>
|
<keyword>SysTick</keyword>
|
||||||
<keyword>Performance Analaysis</keyword>
|
<keyword>Performance Analysis</keyword>
|
||||||
</keywords>
|
</keywords>
|
||||||
|
|
||||||
<conditions>
|
<conditions>
|
||||||
@@ -1814,7 +1814,7 @@
|
|||||||
|
|
||||||
<RTE_Components_h>
|
<RTE_Components_h>
|
||||||
|
|
||||||
/*! \brief enable demo:bencharmk */
|
/*! \brief enable demo:benchmark */
|
||||||
#define LV_USE_DEMO_BENCHMARK 1
|
#define LV_USE_DEMO_BENCHMARK 1
|
||||||
</RTE_Components_h>
|
</RTE_Components_h>
|
||||||
|
|
||||||
|
|||||||
@@ -380,7 +380,7 @@
|
|||||||
#define LV_ATTRIBUTE_FAST_MEM
|
#define LV_ATTRIBUTE_FAST_MEM
|
||||||
|
|
||||||
/*Export integer constant to binding. This macro is used with constants in the form of LV_<CONST> that
|
/*Export integer constant to binding. This macro is used with constants in the form of LV_<CONST> that
|
||||||
*should also appear on LVGL binding API such as Micropython.*/
|
*should also appear on LVGL binding API such as MicroPython.*/
|
||||||
#define LV_EXPORT_CONST_INT(int_value) struct _silence_gcc_warning /*The default value just prevents GCC warning*/
|
#define LV_EXPORT_CONST_INT(int_value) struct _silence_gcc_warning /*The default value just prevents GCC warning*/
|
||||||
|
|
||||||
/*Prefix all global extern data with this*/
|
/*Prefix all global extern data with this*/
|
||||||
@@ -486,7 +486,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*Enable Arabic/Persian processing
|
/*Enable Arabic/Persian processing
|
||||||
*In these languages characters should be replaced with an other form based on their position in the text*/
|
*In these languages characters should be replaced with another form based on their position in the text*/
|
||||||
#define LV_USE_ARABIC_PERSIAN_CHARS 0
|
#define LV_USE_ARABIC_PERSIAN_CHARS 0
|
||||||
|
|
||||||
/*==================
|
/*==================
|
||||||
@@ -790,7 +790,7 @@
|
|||||||
/*Requires: lv_keyboard*/
|
/*Requires: lv_keyboard*/
|
||||||
#if LV_USE_IME_PINYIN
|
#if LV_USE_IME_PINYIN
|
||||||
/*1: Use default thesaurus*/
|
/*1: Use default thesaurus*/
|
||||||
/*If you do not use the default thesaurus, be sure to use `lv_ime_pinyin` after setting the thesauruss*/
|
/*If you do not use the default thesaurus, be sure to use `lv_ime_pinyin` after setting the thesaurus*/
|
||||||
#define LV_IME_PINYIN_USE_DEFAULT_DICT 1
|
#define LV_IME_PINYIN_USE_DEFAULT_DICT 1
|
||||||
/*Set the maximum number of candidate panels that can be displayed*/
|
/*Set the maximum number of candidate panels that can be displayed*/
|
||||||
/*This needs to be adjusted according to the size of the screen*/
|
/*This needs to be adjusted according to the size of the screen*/
|
||||||
@@ -832,7 +832,7 @@
|
|||||||
#define LV_USE_X11 0
|
#define LV_USE_X11 0
|
||||||
#if LV_USE_X11
|
#if LV_USE_X11
|
||||||
#define LV_X11_DIRECT_EXIT 1 /*Exit the application when all X11 windows have been closed*/
|
#define LV_X11_DIRECT_EXIT 1 /*Exit the application when all X11 windows have been closed*/
|
||||||
#define LV_X11_DOUBLE_BUFFER 1 /*Use double buffers for endering*/
|
#define LV_X11_DOUBLE_BUFFER 1 /*Use double buffers for rendering*/
|
||||||
/*select only 1 of the following render modes (LV_X11_RENDER_MODE_PARTIAL preferred!)*/
|
/*select only 1 of the following render modes (LV_X11_RENDER_MODE_PARTIAL preferred!)*/
|
||||||
#define LV_X11_RENDER_MODE_PARTIAL 1 /*Partial render mode (preferred)*/
|
#define LV_X11_RENDER_MODE_PARTIAL 1 /*Partial render mode (preferred)*/
|
||||||
#define LV_X11_RENDER_MODE_DIRECT 0 /*direct render mode*/
|
#define LV_X11_RENDER_MODE_DIRECT 0 /*direct render mode*/
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
PikaEventListener* g_pika_lv_timer_event_listener;
|
PikaEventListener* g_pika_lv_timer_event_listener;
|
||||||
|
|
||||||
void __pika_timer_cb(lv_timer_t* timer) {
|
void __pika_timer_cb(lv_timer_t* timer) {
|
||||||
PikaObj* eventHandleObj = pks_eventLisener_getEventHandleObj(
|
PikaObj* eventHandleObj = pks_eventListener_getEventHandleObj(
|
||||||
g_pika_lv_timer_event_listener, (uint32_t)timer);
|
g_pika_lv_timer_event_listener, (uint32_t)timer);
|
||||||
obj_newDirectObj(eventHandleObj, "timer", New_pika_lvgl_lv_timer_t);
|
obj_newDirectObj(eventHandleObj, "timer", New_pika_lvgl_lv_timer_t);
|
||||||
obj_setPtr(obj_getPtr(eventHandleObj, "timer"), "lv_timer", timer);
|
obj_setPtr(obj_getPtr(eventHandleObj, "timer"), "lv_timer", timer);
|
||||||
@@ -30,9 +30,9 @@ void pika_lvgl_lv_timer_t_set_cb(PikaObj* self, Arg* cb) {
|
|||||||
obj_setArg(self, "eventCallBack", cb);
|
obj_setArg(self, "eventCallBack", cb);
|
||||||
/* init event_listener for the first time */
|
/* init event_listener for the first time */
|
||||||
if (NULL == g_pika_lv_timer_event_listener) {
|
if (NULL == g_pika_lv_timer_event_listener) {
|
||||||
pks_eventLisener_init(&g_pika_lv_timer_event_listener);
|
pks_eventListener_init(&g_pika_lv_timer_event_listener);
|
||||||
}
|
}
|
||||||
pks_eventLicener_registerEvent(g_pika_lv_timer_event_listener,
|
pks_eventListener_registerEvent(g_pika_lv_timer_event_listener,
|
||||||
(uint32_t)lv_timer, self);
|
(uint32_t)lv_timer, self);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ void pika_lvgl_lv_obj_add_state(PikaObj* self, int state) {
|
|||||||
lv_obj_add_state(lv_obj, state);
|
lv_obj_add_state(lv_obj, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
PikaObj* eventLisener_getHandler(PikaObj* self, uintptr_t event_id) {
|
PikaObj* eventListener_getHandler(PikaObj* self, uintptr_t event_id) {
|
||||||
Args buffs = {0};
|
Args buffs = {0};
|
||||||
char* event_name =
|
char* event_name =
|
||||||
strsFormat(&buffs, PIKA_SPRINTF_BUFF_SIZE, "%d", event_id);
|
strsFormat(&buffs, PIKA_SPRINTF_BUFF_SIZE, "%d", event_id);
|
||||||
@@ -63,13 +63,13 @@ PikaObj* eventLisener_getHandler(PikaObj* self, uintptr_t event_id) {
|
|||||||
static void __pika_event_cb(lv_event_t* e) {
|
static void __pika_event_cb(lv_event_t* e) {
|
||||||
lv_obj_t* target = lv_event_get_target(e);
|
lv_obj_t* target = lv_event_get_target(e);
|
||||||
PikaObj* event_handler =
|
PikaObj* event_handler =
|
||||||
eventLisener_getHandler(pika_lv_event_listener_g, (uintptr_t)target);
|
eventListener_getHandler(pika_lv_event_listener_g, (uintptr_t)target);
|
||||||
PikaObj* evt = obj_getObj(event_handler, "_event_evt");
|
PikaObj* evt = obj_getObj(event_handler, "_event_evt");
|
||||||
obj_setPtr(evt, "lv_event", e);
|
obj_setPtr(evt, "lv_event", e);
|
||||||
obj_run(event_handler, "_event_cb(_event_evt)");
|
obj_run(event_handler, "_event_cb(_event_evt)");
|
||||||
}
|
}
|
||||||
|
|
||||||
void eventLicener_registerEvent(PikaObj* self,
|
void eventListener_registerEvent(PikaObj* self,
|
||||||
uintptr_t event_id,
|
uintptr_t event_id,
|
||||||
PikaObj* event_handler) {
|
PikaObj* event_handler) {
|
||||||
Args buffs = {0};
|
Args buffs = {0};
|
||||||
@@ -90,7 +90,7 @@ void pika_lvgl_lv_obj_add_event_cb(PikaObj* self,
|
|||||||
obj_setArg(self, "_event_cb", event_cb);
|
obj_setArg(self, "_event_cb", event_cb);
|
||||||
obj_setPtr(self, "_event_user_data", user_data);
|
obj_setPtr(self, "_event_user_data", user_data);
|
||||||
obj_newDirectObj(self, "_event_evt", New_pika_lvgl_lv_event);
|
obj_newDirectObj(self, "_event_evt", New_pika_lvgl_lv_event);
|
||||||
eventLicener_registerEvent(pika_lv_event_listener_g, (uintptr_t)lv_obj, self);
|
eventListener_registerEvent(pika_lv_event_listener_g, (uintptr_t)lv_obj, self);
|
||||||
}
|
}
|
||||||
|
|
||||||
void pika_lvgl_lv_obj_add_style(PikaObj *self, PikaObj* style, int selector){
|
void pika_lvgl_lv_obj_add_style(PikaObj *self, PikaObj* style, int selector){
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ void lv_example_gridnav_3(void)
|
|||||||
label = lv_label_create(btn);
|
label = lv_label_create(btn);
|
||||||
lv_label_set_text(label, "Button 2");
|
lv_label_set_text(label, "Button 2");
|
||||||
|
|
||||||
/*Create an other container with long text to show how LV_GRIDNAV_CTRL_SCROLL_FIRST works*/
|
/*Create another container with long text to show how LV_GRIDNAV_CTRL_SCROLL_FIRST works*/
|
||||||
lv_obj_t * cont_sub1 = lv_obj_create(cont_main);
|
lv_obj_t * cont_sub1 = lv_obj_create(cont_main);
|
||||||
lv_obj_set_size(cont_sub1, lv_pct(100), 100);
|
lv_obj_set_size(cont_sub1, lv_pct(100), 100);
|
||||||
|
|
||||||
@@ -65,7 +65,7 @@ void lv_example_gridnav_3(void)
|
|||||||
"Hello world!\n"
|
"Hello world!\n"
|
||||||
"Hello world!");
|
"Hello world!");
|
||||||
|
|
||||||
/*Create a third container that can be focused with ENTER and contains an other grid nav*/
|
/*Create a third container that can be focused with ENTER and contains another grid nav*/
|
||||||
lv_obj_t * cont_sub2 = lv_obj_create(cont_main);
|
lv_obj_t * cont_sub2 = lv_obj_create(cont_main);
|
||||||
lv_gridnav_add(cont_sub2, LV_GRIDNAV_CTRL_ROLLOVER);
|
lv_gridnav_add(cont_sub2, LV_GRIDNAV_CTRL_ROLLOVER);
|
||||||
/*Only the container needs to be in a group*/
|
/*Only the container needs to be in a group*/
|
||||||
|
|||||||
@@ -146,7 +146,7 @@ static void download_timer_cb(lv_timer_t * t)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Emulate connection and FW dowlading by timers
|
* Emulate connection and FW downloading by timers
|
||||||
*/
|
*/
|
||||||
static void fw_upload_manager_observer_cb(lv_observer_t * observer, lv_subject_t * subject)
|
static void fw_upload_manager_observer_cb(lv_observer_t * observer, lv_subject_t * subject)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ void lv_example_lottie_1(void)
|
|||||||
static uint8_t buf[64 * 64 * 4];
|
static uint8_t buf[64 * 64 * 4];
|
||||||
lv_lottie_set_buffer(lottie, 64, 64, buf);
|
lv_lottie_set_buffer(lottie, 64, 64, buf);
|
||||||
#else
|
#else
|
||||||
/*For GPUs and special alignemnt/strid setting use a draw_buf instead*/
|
/*For GPUs and special alignment/strid setting use a draw_buf instead*/
|
||||||
LV_DRAW_BUF_DEFINE(draw_buf, 64, 64, LV_COLOR_FORMAT_ARGB8888);
|
LV_DRAW_BUF_DEFINE(draw_buf, 64, 64, LV_COLOR_FORMAT_ARGB8888);
|
||||||
lv_lottie_set_draw_buf(lottie, &draw_buf);
|
lv_lottie_set_draw_buf(lottie, &draw_buf);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ void lv_example_lottie_2(void)
|
|||||||
static uint8_t buf[64 * 64 * 4];
|
static uint8_t buf[64 * 64 * 4];
|
||||||
lv_lottie_set_buffer(lottie, 64, 64, buf);
|
lv_lottie_set_buffer(lottie, 64, 64, buf);
|
||||||
#else
|
#else
|
||||||
/*For GPUs and special alignemnt/strid setting use a draw_buf instead*/
|
/*For GPUs and special alignment/strid setting use a draw_buf instead*/
|
||||||
LV_DRAW_BUF_DEFINE(draw_buf, 64, 64, LV_COLOR_FORMAT_ARGB8888);
|
LV_DRAW_BUF_DEFINE(draw_buf, 64, 64, LV_COLOR_FORMAT_ARGB8888);
|
||||||
lv_lottie_set_draw_buf(lottie, &draw_buf);
|
lv_lottie_set_draw_buf(lottie, &draw_buf);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user