Compare commits

...

222 Commits

Author SHA1 Message Date
ym-terada
4d96c27ce3 fix(event): fix LV_EVENT_PREPROCESS flag was not processed correctly on VisualStudio (#6169) 2024-05-06 14:48:54 +02:00
Gabor Kiss-Vamosi
36a8052510 chore: kick CI to rebuild the docs 2024-04-23 15:56:46 +02:00
蒋慧赟
b4bdc9e482 chore(group):avoid null pointer access (#5864) 2024-03-17 11:42:33 +08:00
Benign X
20ac90dbc2 fix(ci): workaround ASAN error in CI with Ubuntu 22.04 image (#5867) 2024-03-16 14:36:29 +01:00
liamHowatt
32966352ad fix(canvas): lv_canvas_transform negative offset_y parameter (#5846) 2024-03-13 12:15:55 +01:00
Gabor Kiss-Vamosi
31126be578 update code formatter 2024-03-12 14:37:33 +01:00
Fabian Blatz
e91f5de63f feat(pxp): add zephyr support (#5838) 2024-03-12 14:34:16 +01:00
Gabor Kiss-Vamosi
39687e808f chore: fix warning 2024-02-08 15:17:24 +01:00
Gabor Kiss-Vamosi
8588762572 chore: code formatting 2024-02-08 15:17:23 +01:00
Gabor Kiss-Vamosi
949c2fdda0 fix(st-dma2d): remove unused functions (#5561) 2024-02-07 09:26:46 +01:00
Gabor Kiss-Vamosi
099f0cd805 demo(music): add png assets 2024-01-29 12:21:46 +01:00
glory-man
4e357b8f27 docs: fixed some typos (#5502) 2024-01-26 19:54:57 +08:00
蒋慧赟
be08c2b4cf doc(font): update Bidirectional support (#5416) 2024-01-22 12:51:55 +01:00
Carlos Diaz
9d0942a117 feat(calendar): set a custom year list for calendar header (#5275) 2024-01-11 05:41:26 +01:00
Gabriel Wang
f2c103260f fix(gpu-arm2d): fix a blending issue in blend-normal-with-mask-and-opa (#5163) 2024-01-03 10:24:27 +01:00
Gabor Kiss-Vamosi
e277114631 docs(meter): change LV_PART_TICK -> LV_PART_TICKS
fixes #5143
2024-01-01 21:20:33 +01:00
Gabor Kiss-Vamosi
68a7beb5d8 docs(roller): add note about using LV_USE_LARGE_COORD 2023-12-30 12:00:42 +01:00
Adam Nilsson
6f75b41ade feat(build): add pkgconfig file (#4744) (#5067)
Co-authored-by: Adam x Nilsson <adamni@axis.com>
2023-12-22 23:07:37 +01:00
Zhongwei Liu
b1284c3107 fix(screen): fix crash when starting two screen loads with animations (#5062) 2023-12-21 09:52:37 +01:00
Peter
6c66a491b8 fix(chart): fix memory leak in lv_chart_remove_series (#5001)
Co-authored-by: Peter Hjärtquist <peter.hjartquist@btg.com>
2023-12-13 15:44:20 +01:00
Gabor Kiss-Vamosi
b7a20df38f docs: add banner 2023-12-11 22:59:24 +01:00
Niklas Fiekas
dba431a3d0 docs(sjpg): color depth no longer limited to 16 bits (#4971) 2023-12-11 12:51:04 +01:00
Niklas Fiekas
9ba2992582 fix(snapshot): set data_size on returned dsc (#4972) 2023-12-11 12:45:46 +01:00
Gabor Kiss-Vamosi
74d0a816a4 release v8.3.11 2023-12-06 15:01:19 +01:00
Gabriel Wang
8194d83226 chore(cmsis-pack): prepare for v8.3.11 (#4936) 2023-12-06 14:57:31 +01:00
Gabor Kiss-Vamosi
1840decb41 fix(qrcode): use LV_ASSERT instead of assert 2023-12-06 09:12:24 +01:00
Gabor Kiss-Vamosi
ef76206c75 fix(disp): fix infinite recursive SCREEN_LOADED events 2023-12-05 10:27:36 +01:00
Niklas Fiekas
4fdc4c20b7 fix(obj): readjust scroll after layout when child removed (#4921) 2023-12-04 22:06:59 +01:00
Meco Man
85776aeec3 fix(rt-thread): fix create lvgl thread problem (#4862)
Co-authored-by: Rbb666 <64397326+Rbb666@users.noreply.github.com>
2023-11-26 20:37:39 +01:00
Gabor Kiss-Vamosi
d20bd1ca39 fix(keyboard): add '&' character 2023-11-23 08:53:35 +01:00
Neo Xu
c16bfdc227 fix(obj): fix arduino compile warnings (#4807)
Signed-off-by: Neo Xu <neo.xu1990@gmail.com>
2023-11-14 14:21:47 +01:00
lhdjply
3b6f98a938 fix(table):fix issue with abnormal string output of 'lv_table_set_cell_value_fmt' (#4804) 2023-11-14 13:12:56 +01:00
Oleg Belousov
6c86969ee0 fix(table) user data API functions renamed (#4769)
Co-authored-by: Oleg Belousov <bov@silentwings.ru>
2023-11-10 13:51:05 +01:00
Oleg Belousov
fdfff5c0b8 feat(table): add user_data to table cells (#4767)
Co-authored-by: Oleg Belousov <bov@silentwings.ru>
2023-11-08 16:29:01 +01:00
Niklas Fiekas
2791d5739f feat(tiny_ttf): backport Tiny TTF to lvgl 8 (#4727) 2023-11-03 00:03:09 +01:00
lhdjply
68d380eb90 fix(ime_pinyin): keep cursor in the textarea when a candidate is pressed (#4731) 2023-11-02 09:21:56 +01:00
Gabor Kiss-Vamosi
20b6199ba9 fix(arc): fix setting value by click 2023-10-25 11:54:45 +02:00
LionYu
7efcea6d08 chore(cmake): add support for user-specified lv_conf.h path (#4689) 2023-10-23 16:45:40 +02:00
Saeed Poorjandaghi
7f894cf755 fix(draw_needles): changed needle line draw start point from scale ce… (#4682) 2023-10-23 16:44:23 +02:00
hermitsoft
fa40b05191 feat(littlefs): add lv_fs_littlefs system as a driver (#4677)
Co-authored-by: Gabor Kiss-Vamosi <kisvegabor@gmail.com>
2023-10-20 22:38:01 +02:00
Carlos Diaz
17c580fad6 fix(arc): handle click outside background angle range (#4586) (#4667) 2023-10-19 10:13:39 +02:00
Vic
454e45429c fix(meter): fix minor issues (#4657) 2023-10-16 17:25:31 +02:00
Gabor Kiss-Vamosi
9fbac7570b docs: fix typo
see #4644
2023-10-13 15:57:54 +02:00
Tomasz Jastrzębski
1e381f11bf STM32U5 DMA2D support (8.3) (#4643) 2023-10-10 22:51:23 +02:00
Gabor Kiss-Vamosi
d22cda3cdb fix: fix warning in lv_draw_sw_letter.c 2023-10-06 09:57:19 +02:00
Fabian Blatz
869cc63003 backport: fix(lv_disp): fix lv_scr_load_anim being called twice quickly (#4629) 2023-10-06 09:51:57 +02:00
hermitsoft
73fa50afa0 docs(obj): fix wording (#4625) 2023-10-04 13:27:24 +02:00
Gabor Kiss-Vamosi
7a8fcbfd34 fix(draw): fix scaling rectangle parts with opa
fixes #4611
2023-10-02 15:43:59 +02:00
Gabor Kiss-Vamosi
7568df77d1 chore: fix compile error 2023-10-02 15:35:34 +02:00
Carlos Diaz
9a673e447d chore(lv_draw_sw_letter.c): Fix print format (#4615) 2023-10-02 15:08:39 +02:00
Carlos Diaz
3b2d75be02 fix(draw): fix compiler error in lv_draw_sw_transform.c #2 (#4612)
Co-authored-by: Victor Wheeler <vaw_info998@comcast.net>
Co-authored-by: Gabor Kiss-Vamosi <kisvegabor@gmail.com>
2023-09-29 09:50:18 +02:00
Carlos Diaz
87ff746e21 docs(label): update text for recoloring (#4606) 2023-09-27 12:22:17 +02:00
linyiyang
14e21d27fb fix(dropdown): avoid partial match in lv_dropdown_get_option_index (#4598) 2023-09-26 12:49:37 +02:00
linyiyang
ff4f3f9769 fix(dropdown): reset char_i = 0, avoid access overflow (#4589) 2023-09-24 21:02:41 +02:00
Gregor
a7a9d278c4 fix(btnmatrix): set LV_BTNMATRIX_BTN_NONE when clicking of disabled button (#4571) (#4578)
Co-authored-by: Gregor Buß <gb@tetratec.de>
2023-09-21 10:35:59 +02:00
Gabor Kiss-Vamosi
06e229cc76 release v8.3.10 2023-09-20 11:55:01 +02:00
Gabriel Wang
9e388055ec chore(cmsis-pack): create cmsis-pack for v8.3.10 (#4572) 2023-09-20 11:52:45 +02:00
Gabor Kiss-Vamosi
eb87767cc6 chore: code formatting 2023-09-15 00:54:32 +02:00
Gabor Kiss-Vamosi
01cd1fed9d fix(vglite): be sure end_angle > start_angle in arc drawing 2023-09-15 00:52:09 +02:00
Gabor Kiss-Vamosi
28094404ad fix(refr): fix single buffered direct mode
fixes 9787d47d0
2023-09-08 22:39:12 +02:00
defogprog
e2b19eb4ac fix: build on Windows (MinGW environment) (#4538)
Co-authored-by: Andrii Samozvon <samozvon.a@ajax.systems>
2023-09-08 22:06:59 +02:00
kolliemo
bff1f22970 fix(docs): dropdown: fix function name in description of static options (#4535) 2023-09-08 22:01:50 +02:00
Lukasz Skalski
9787d47d0b fix: do not copy invalid areas if not double buffered mode (#4526) 2023-09-07 13:51:33 +02:00
_VIFEXTech
6548ea0f29 feat(style): backport opa_layered 2023-09-03 20:00:15 +02:00
Xiaosheng An
1375ea85a1 Update screen object opacity function documentation (#4505) 2023-09-01 00:25:25 +02:00
Gabor Kiss-Vamosi
a296456591 docs(calendar): update according to v8.2 changes 2023-08-30 15:59:15 +02:00
Brandon Holland
336f24127a feat(disp): add double buffered direct-mode efficient sync algorithm (v8.3) (#4497)
Co-authored-by: Gabor Kiss-Vamosi <kisvegabor@gmail.com>
2023-08-29 20:23:50 +02:00
Gabor Kiss-Vamosi
1c5df6c665 demo(sress): fix issues when the stress test is opened/clsoed multiple times 2023-08-27 21:17:38 +02:00
Xiaosheng An
7d314aab62 fix(sdl): add missing parameter in lv_draw_sdl_composite_texture_obtain (#4490) 2023-08-25 23:02:35 +02:00
Gabor Kiss-Vamosi
fd21ed0eb8 ci: update screenshot compare from v9 to automatically create missing reference images 2023-08-25 14:25:15 +02:00
Gabor Kiss-Vamosi
5fc488a088 ci(dropdown): fix test 2023-08-25 14:24:49 +02:00
Gabor Kiss-Vamosi
f174589240 fix(dropdown): position to the selected item in lv_dropdown_set_selected 2023-08-25 13:25:22 +02:00
Gabor Kiss-Vamosi
bcebafe4fb docs(simulator): remove SDL support from the Visual Studio project 2023-08-13 22:13:47 +02:00
BurkerA
8063fac793 fix(btnmatrix): fix tapping just outside a button in a buttonmatrix
See #4439
2023-08-09 14:43:21 +02:00
Gabor Kiss-Vamosi
9ec3b8706b docs: update changelog 2023-08-06 22:28:22 +02:00
Gabriel Wang
bdf5bfb88c chore(cmsis-pack): prepare for release v8.3.9 (#4424) 2023-08-06 22:25:47 +02:00
Gabor Kiss-Vamosi
4f102d7b6b fix: use const lv_img_dsc_t * dsc function parameter in lv_img_buf.h/
fixes #4421
2023-08-01 09:51:44 +02:00
Gabor Kiss-Vamosi
810852b41b docs(disp): metined that rotation rotates the touch coordinates too
related to #4409
2023-07-28 10:17:01 +02:00
Neo Xu
21e95bc1b3 fix(decoder): fix LV_IMG_CF_ALPHA_8BIT bin file decoder (#4406)
Signed-off-by: Xu Xingliang <xuxingliang@xiaomi.com>
2023-07-26 17:38:15 +02:00
fronders
dbcf56288e fix(config): fix typo in LV_USE_PERF_MONITOR and LV_USE_MEM_MONITOR (#4403) 2023-07-25 15:32:03 +02:00
fronders
eee2dd1864 fix(attr): refactor LV_ATTRIBUTE_* for function attributes (#4404)
Co-authored-by: Gabor Kiss-Vamosi <kisvegabor@gmail.com>
2023-07-25 15:13:35 +02:00
the-programmer
141f4b8ab3 fix(font): fix optimizer issue in lv_font_fmt_txt.c (#4385)
Co-authored-by: Gabor Kiss-Vamosi <kisvegabor@gmail.com>
2023-07-21 09:51:37 +02:00
Gabor Kiss-Vamosi
f9ffcc9d8e fix(chart): fix lv_chart_get_point_pos_by_id
fixes #4367
2023-07-15 19:36:09 +02:00
Gabor Kiss-Vamosi
385d999a4a fix(imgbtn): support LV_OBJ_FLAG_CHECKABLE
fixes #4373
2023-07-14 21:04:18 +02:00
PeterB
29ed7c5717 fix(btnmatrix): Fix typo in previous commit! 2023-07-12 13:22:10 +01:00
PeterB
65f1c9305e fix(btnmatrix): Hide button matrix when all buttons hidden
Makes sure the focus behaves correctly when all button matrix buttons
have been hidden.
2023-07-12 13:02:15 +01:00
Gabor Kiss-Vamosi
b1bbb95ceb chore: format code 2023-07-10 20:02:25 +02:00
Gabor Kiss-Vamosi
223dc1cf9d fix(tabview): fix warning 2023-07-10 19:54:41 +02:00
PeterB
416b26771b chore(music demo) fix formatting 2023-07-10 13:08:04 +01:00
PeterB
645006e351 fix(indev): fix warnings when loggin coordinates is enabled 2023-07-10 12:26:23 +01:00
PeterB
375b3b5d3e fix(obj) prevent hidden objects keeping focus 2023-07-10 11:38:57 +01:00
Gabor Kiss-Vamosi
1c5d4b02d7 Merge branch 'demo-close' into release/v8.3 2023-07-05 13:43:10 +02:00
Gabor Kiss-Vamosi
e6d7be00bf docs: update changelog 2023-07-05 13:42:21 +02:00
Gabriel Wang
15433d69b9 chore(cmsis-pack): update cmsis-pack for v8.3.8 (#4340) 2023-07-05 13:39:10 +02:00
Gabor Kiss-Vamosi
91038a99e8 demos: add lv_demo_..._close() functions for each demo 2023-07-04 11:12:46 +02:00
Gabor Kiss-Vamosi
9491c3ff6d example(tabview): fix tabview disable scrollig example
there is no animatin after selecting a tab by clicking anymore
2023-06-30 22:50:52 +02:00
Gabor Kiss-Vamosi
3de61c76af fix(tabview): remove the animation if the tab is selected by clicking the button on the header 2023-06-26 10:33:21 +02:00
kolliemo
09cc0de573 docs: mention incompatibility between software rotation and direct_mode or full_refresh (#4308) 2023-06-23 22:39:10 +02:00
Gabor Kiss-Vamosi
227ac02341 docs(faq): don't say 24 bit is support as LVGL can't render in RGB888 directly 2023-06-23 09:52:25 +02:00
Gabor Kiss-Vamosi
8b83fe7ea5 feat(rt-thread): make the rt-thread env recursively glob the UI files 2023-06-20 07:53:34 +02:00
Gabor Kiss-Vamosi
edd5ad28ad fix(btnmatrix): fix array out of bounds addressing with groups and no buttons 2023-06-19 10:28:23 +02:00
pete-pjb
07bce7466d fix:(BtnMatrix) Backport https://github.com/lvgl/lvgl/pull/4185
Stop disabled/hidden button matrix keys from getting stuck in a loop
2023-06-16 17:51:49 +01:00
pete-pjb
1713cd3fd8 Revert "fix:(BtnMatrix) Backport https://github.com/lvgl/lvgl/pull/4185"
This reverts commit cb602ea778.
2023-06-16 17:42:08 +01:00
pete-pjb
cb602ea778 fix:(BtnMatrix) Backport https://github.com/lvgl/lvgl/pull/4185
Stop Button Matrix getting stuck in loop if buttons disable/hidden
2023-06-16 17:31:34 +01:00
Rbb666
caf29ef0c5 add(docs): add renesas-ra6m3 get-started document (#4278) 2023-06-12 12:21:46 +02:00
jacquesdmernok
a3199514ab fix(stm32): static function prototypes moved from .h to .c (#4276) 2023-06-12 12:12:12 +02:00
Rbb666
78cbdfc151 add(gpu): add renesas-ra6m3 gpu adaptation (#4270) 2023-06-08 10:42:34 +02:00
Gabor Kiss-Vamosi
75e6ef4e1d fix(btnmatrix): fix using > 7 as button width 2023-05-31 22:49:41 +02:00
Lorenzo Arena
2376c57860 fix(png): fix decode image size and some warnings (#4248) 2023-05-29 10:43:49 +02:00
Gabor Kiss-Vamosi
e3659c46b1 fix(arduino): fix messed up variable types 2023-05-24 11:09:51 +02:00
Lorenzo Arena
df96b57f4e fix(bidi): add more Hebrew checks to RTL characters set (#4171) (#4239) 2023-05-24 10:00:07 +02:00
Gabor Kiss-Vamosi
67b3011f83 fix(chart): fix division by zero if there are no ticks 2023-05-19 10:25:17 +02:00
nicusorcitu
d87737612a perf(pxp, vglite): improve performance and add more features (#4222)
Signed-off-by: Nicușor Cîțu <nicusor.citu@nxp.com>
Signed-off-by: Stefan Babatie <stefan.babatie@nxp.com>
Signed-off-by: Jason Yu <zejiang.yu@nxp.com>
Co-authored-by: Stefan Babatie <stefan.babatie@nxp.com>
Co-authored-by: Jason Yu <zejiang.yu@nxp.com>
2023-05-18 22:43:19 +02:00
Gabor Kiss-Vamosi
6a89bd2d74 fix(msgbox): fix typo 2023-05-18 13:01:17 +02:00
Gabor Kiss-Vamosi
6843c191b7 fix(msgbox): add missing lv_obj_class_init_obj
fixes #4226
2023-05-18 11:53:58 +02:00
Gabor Kiss-Vamosi
1caafc55dd fix(disp): fix memory leak lv_scr_load_anim with auto_del and time=0
fixes: #4212
2023-05-18 11:14:16 +02:00
Gabor Kiss-Vamosi
5ba90a5c41 fix(flex): register LV_STYLE_FLEX_GROW
fixes #4214
2023-05-10 08:25:04 +02:00
jadergn
630da9c6ca fix(img): fix getting the image type on big endian systems (#4215) 2023-05-09 20:27:54 +02:00
Mariotaku
ee95e7dc25 fix(sdl): destroy texture after use if not stored in cache (#4173) 2023-05-08 17:02:49 +02:00
Gabor Kiss-Vamosi
45b13c378f fix(draw): typo with LV_COLOR_DEPTH 8 2023-05-03 10:34:18 +02:00
Gabriel Wang
2b56e04205 chore(cmsis-pack): update cmsis-pack for v8.3.7 (#4203) 2023-05-03 10:11:24 +02:00
Gabor Kiss-Vamosi
177900b033 docs(changelog): update changelog for v8.3.7 2023-05-03 10:07:40 +02:00
Oleg Belousov
203e7fc97d fix (spinbox): doubling characters entered from the keyboard (#4190) 2023-05-01 11:11:56 +02:00
Gabriel Wang
7345e62355 fix(arm-2d): fix transform-chrome-keying issue (#4178) 2023-04-28 11:26:53 +02:00
Gabor Kiss-Vamosi
48d7878bac fix(style): fix trasition on bg_grad color
fixes: #4174
2023-04-28 10:37:32 +02:00
Gabor Kiss-Vamosi
a0795b49e8 fix(indev): fix integer overflow in recursive zoom calculation 2023-04-24 20:10:33 +02:00
Gabor Kiss-Vamosi
a150b15e45 feat(btnmatrix): review ctrl map and allow width values to be max 15 2023-04-24 10:54:47 +02:00
Posejdos
a95714ba7c fix(menu): prevent setting the current page again (#4136) 2023-04-18 10:50:22 +02:00
Tomas Rezucha
8536152d81 fix(esp): fix ESP-IDF pedantic builds (backport v8.3) (#4135) 2023-04-17 13:03:58 +02:00
moinmoin-sh
6314441839 fix: color mixing with LV_COLOR_SWAP == 1 (#4101) 2023-04-03 15:10:03 +02:00
Gabor Kiss-Vamosi
88c51b22ad docs: udpate changelog 2023-04-03 10:29:45 +02:00
Gabriel Wang
6b0092c0d9 chore(cmsis-pack): update cmsis-pack for v8.3.6 (#4108) 2023-04-03 10:27:16 +02:00
Gabor Kiss-Vamosi
aa313806d0 fix(bar): delete running animations when a new value is set without animation
fixes #4094
2023-04-03 10:25:04 +02:00
Gabor Kiss-Vamosi
5e0e1c8c4e chore: code formatting 2023-03-28 13:56:17 +02:00
Gabor Kiss-Vamosi
d0e19eb2d3 fix(arc): fix knob area invalidation 2023-03-28 13:53:59 +02:00
Neo Xu
fd20fabfda fix(group): fix default_group becomes wild pointer when deleted (#4076) 2023-03-20 15:27:22 +01:00
Gabor Kiss-Vamosi
399069b4a2 Update build_html_examples.sh 2023-03-17 17:08:33 +01:00
Gabor Kiss-Vamosi
501230e0fc docs: use a fixed commit of lv_web_emscripten
fixes #4071
2023-03-17 17:00:52 +01:00
Neo Xu
adcf166382 fix(fs_posix): allow creating new file and set permission. (#3976)
Signed-off-by: Neo Xu <neo.xu1990@gmail.com>
2023-03-17 09:40:23 +01:00
Gabor Kiss-Vamosi
2f294aa76c docs(arduino): add note to not use lv_examles library 2023-03-14 07:40:48 +01:00
Gabor Kiss-Vamosi
9a870b34a9 format code 2023-03-08 11:12:11 +01:00
Gabor Kiss-Vamosi
0b7777f27a fix(slider): consider animations on pressing 2023-03-08 11:09:38 +01:00
Neo Xu
e8d8f399e0 fix(img): support negative angles (#3846)
Signed-off-by: Xu Xingliang <xuxingliang@xiaomi.com>
2023-02-27 17:16:08 +01:00
yuqingli05
0df09db23e fix(gif): synchronize with master (#4003) 2023-02-20 21:05:48 +01:00
Morgan Diepart
e2386fd46d fix(gpu): fix STM GPU drivers for some variants (#4004) 2023-02-20 14:26:11 +01:00
fvanroie
2944277f07 fix(img): possible divide by 0 exception (lvgl#3988) (#3990)
Co-authored-by: fvanroie <cpt_jack@msn.com>
2023-02-15 20:57:19 +01:00
Gabor Kiss-Vamosi
6af01798d8 feat(msg): add lv_msg_unsubcribe_obj 2023-02-14 13:36:12 +01:00
Gabor Kiss-Vamosi
77670fb1a5 chore: update the version numbers to v8.3.5-dev 2023-02-07 08:16:26 +01:00
Gabor Kiss-Vamosi
f29514aa5c docs: update changelog 2023-02-07 08:12:45 +01:00
Gabriel Wang
e7e8cf846d feat(cmsis-pack): update cmsis-pack for v8.3.5 (#3972) 2023-02-07 08:10:13 +01:00
Junbo Zheng
8b1270347f fix(monkey): remove executable permissions from source files (#3971)
Signed-off-by: Junbo Zheng <zhengjunbo1@xiaomi.com>
2023-02-07 07:34:38 +01:00
Amir Gonnen
e6cd7063b6 fix(ci): set Ubuntu version for MicroPython test (#3865) 2023-02-01 13:39:40 +01:00
Gabor Kiss-Vamosi
34c545ef19 docs(indev): fix the name of long_press_repeat_time (was long_press_rep_time)
fixes #3954
2023-02-01 10:42:03 +01:00
nicusorcitu
361ee79611 feat(gpu): improve NXP's PXP and VGLite accelerators (#3952)
Signed-off-by: Nicușor Cîțu <nicusor.citu@nxp.com>
Signed-off-by: Stefan Babatie <stefan.babatie@nxp.com>
Signed-off-by: Wenbin Yuan <wenbin.yuan@nxp.com>
Co-authored-by: Stefan Babatie <stefan.babatie@nxp.com>
Co-authored-by: Wenbin Yuan <wenbin.yuan@nxp.com>
2023-02-01 10:35:24 +01:00
Gabor Kiss-Vamosi
39f424767f fix(roller): consider the recolor setting of the label
fixes #3950
2023-01-28 23:57:08 +01:00
Tomasz Jastrzębski
1853cc5143 perf(dam2d): rework stm32 dma2d (#3904) 2023-01-23 08:37:34 +01:00
Gabor Kiss-Vamosi
9faca8a8d4 Update layer.md 2023-01-13 09:27:22 +01:00
Mr.9You
8ea6f03fc3 fix(Kconfig): Fix wrong type of LV_FS_STDIO_CACHE_SIZE (v8.3) (#3906) 2023-01-05 21:19:33 +01:00
Forairaaaaa
c6c1b0b3d3 chore: add an option to "LV_TICK_CUSTOM" (#3879) 2023-01-03 08:12:19 +01:00
Mr.9You
e529230f4b ci(esp): fix push to the component registry on tag 2023-01-02 20:16:37 +01:00
Gabriel Wang
dbb15bb3ea feat(cmsis-pack): update for v8.3.4 (#3896) 2023-01-01 13:30:29 +01:00
Gabor Kiss-Vamosi
47c8f8f982 bump version numbers to v8.3.5-dev 2022-12-15 13:39:56 +01:00
Gabor Kiss-Vamosi
2c0162b457 release v8.3.4 2022-12-15 13:38:36 +01:00
Man, Jianting (Meco)
dec580b9f1 fix(rt-thread): sync rt-thread v5.0.0 rt_align (#3864) 2022-12-13 11:47:17 +01:00
Gabor Kiss-Vamosi
ad56dfaf70 fix(gridnav): fix stucking in pressed state with encoder
fixes #3854
2022-12-13 09:59:20 +01:00
Gabor Kiss-Vamosi
c8e584f879 fix(style): add the missing support for pct pivot in tranasform style properties 2022-12-11 00:16:57 +01:00
Mariotaku
d2d886aae5 fix(draw): SDL2 gradient support #3848 (#3856) 2022-12-08 10:36:03 +01:00
Gabor Kiss-Vamosi
1e3ca25fed fix(example): fix warnings
related to #3759
2022-12-06 08:08:20 +01:00
Gabor Kiss-Vamosi
84cf05d8b2 fix(indev): fix scrolling on transformed obejcts
related to #3819
2022-12-05 09:46:21 +01:00
Gabor Kiss-Vamosi
2c17b28ac4 fix(darw): add back the disappeared antialising=0 support
fixes #3838
2022-12-03 17:49:48 +01:00
Gabor Kiss-Vamosi
1ed026ca73 fix(benchmark): fix warnings
related to #3759
2022-12-02 14:34:30 +01:00
Gabor Kiss-Vamosi
ae3825871e demo(benchmark): fix lv_label_set_text_fmt format strings 2022-11-28 21:34:30 +01:00
Man, Jianting (Meco)
ae300acb2f [v8.3.x][rt-thread][squareline] fix compiler cannot find the lvgl/lvg… (#3834) 2022-11-28 19:38:29 +01:00
Gabor Kiss-Vamosi
41fa416134 fix(msg): fix typos in API by adding wrappers
fixes #3822
2022-11-24 11:08:53 +01:00
Gabor Kiss-Vamosi
68f6190f8e chore: format code 2022-11-23 12:49:05 +01:00
Gabor Kiss-Vamosi
1173dcba96 demo(benchmark): fix warning 2022-11-23 12:45:25 +01:00
Gabor Kiss-Vamosi
716e5e2c8b fix(meter): fix setting part_draw_dsc.id in needle img drawing 2022-11-20 12:37:13 +01:00
Gabor Kiss-Vamosi
bb2c2ac34a fix(chart): fix very dense bar charts 2022-11-20 12:37:13 +01:00
Gabor Kiss-Vamosi
c4c400716e fix(flex): be sure obj->w_layout and h_layout can't be set at the same time
realted to https://forum.lvgl.io/t/flex-grow-in-rotate/10220/4
2022-11-17 21:28:30 +01:00
_VIFEXTech
6825d4bd1d chore(table): remove extra spaces (#3805)
Co-authored-by: pengyiqiang <pengyiqiang@xiaomi.com>
2022-11-16 14:21:42 +01:00
Gabor Kiss-Vamosi
39d03a80f4 feat(table): scroll to the selected cell with key navigation
Fixes https://forum.lvgl.io/t/grid-navigation-with-automatic-scrolling-for-table/10285
2022-11-16 11:32:11 +01:00
Ramesh
340a1cb60b fix(esp.cmake): add demos and examples (#3784) 2022-11-05 18:55:30 +01:00
Gabor Kiss-Vamosi
e06f03db72 fix(draw): fix transformation accuracy
fixes #3777
2022-11-02 17:26:12 +01:00
Gabor Kiss-Vamosi
bd11ad8542 fix(draw): handle LV_COLOR_DEPTH == 1 too in lv_draw_sw_transform
fixes: #3772
2022-11-01 18:25:09 +01:00
Gabor Kiss-Vamosi
e050f5ca15 fix(draw): fix text color with sub pixel rendering and BGR order
fixes: #3764
2022-10-26 10:14:02 +02:00
Gabor Kiss-Vamosi
903e94b716 fix(style): remove the reduntant define of LV_GRADIENT_MAX_STOPS
fixes #3752
2022-10-24 16:03:34 +02:00
Gabor Kiss-Vamosi
0732400e7b Revert "feat(keyboard): ported arabic keyboard from release 7.10.0 (#3728)"
This reverts commit 483b2a4322.
2022-10-09 19:27:34 +02:00
gianlucacornacchia
483b2a4322 feat(keyboard): ported arabic keyboard from release 7.10.0 (#3728) 2022-10-09 18:42:10 +02:00
Gabor Kiss-Vamosi
5545ffc925 release v8.3.3 2022-10-06 10:00:12 +02:00
Gabor Kiss-Vamosi
c8bee40410 fix: version number in lvgl.h 2022-09-30 11:26:19 +02:00
Gabor Kiss-Vamosi
755d363ecc release v8.3.2 2022-09-27 08:04:09 +02:00
Gabor Kiss-Vamosi
dfd14fa778 fix(slider): find the nearest value on click instead of floor
fixes: #3690
2022-09-19 09:55:49 +02:00
Mariotaku
1ab9aa5312 fix(fragment): fixed child fragment event dispatch (#3683) 2022-09-12 16:19:54 +02:00
Mariotaku
4d69cd865c fix(sdl): clear streaming/target texture with FillRect (#3682) 2022-09-12 16:18:47 +02:00
Tyler
832bef4346 fix(sdl): transformation with alpha (#3576) (#3678)
Co-authored-by: Mariotaku <mariotaku.lee@gmail.com>
2022-09-10 13:51:42 +02:00
Gabor Kiss-Vamosi
d5b2a9b256 fix(draw): fix border drawing with thick borders
fixes #3648
2022-09-02 13:32:18 +02:00
Gabor Kiss-Vamosi
7640950216 chore: fix warnings 2022-08-31 22:32:56 +02:00
Gabor Kiss-Vamosi
8b605cc482 fix(refr): fix true double double buffering logic with transparent screens
fixes #3623
2022-08-31 21:15:53 +02:00
Gabor Kiss-Vamosi
ece3495004 fix(draw): allow drawing outline with LV_DRAW_COMPLEX == 0 too 2022-08-31 21:15:53 +02:00
_VIFEXTech
f6655c2aaf fix(draw_sw): fix image cache to access the freed stack space (#3584)
Co-authored-by: pengyiqiang <pengyiqiang@xiaomi.com>
2022-08-23 15:30:05 +02:00
Pieter De Gendt
cba2aa95c8 fix(style): use compile time prop_cnt for const styles (#3609)
No need to end with an empty/invalid property in the const list.
This change allows to save space, and doesn't break existing lists.
2022-08-23 12:19:48 +02:00
Man, Jianting (Meco)
660464c973 chore(rt-thread) backport fixes from v9 (#3604)
https://github.com/lvgl/lvgl/pull/3566
https://github.com/lvgl/lvgl/pull/3467
2022-08-21 20:42:32 -04:00
Gabor Kiss-Vamosi
5156ee058d fix(group): be sure obj is removed from its current group in lv_group_add_obj
fixes #3593
2022-08-19 12:03:06 +02:00
Gabor Kiss-Vamosi
a0515ba30d fix(style): add missing invalidation in lv_obj_remove_local_style_prop
fixes #3581
2022-08-17 12:51:45 +02:00
Chris Morgan
1a46030918 docs(draw) remove reference to old lv_fs_add_drv function (#3564) 2022-08-11 09:24:49 -04:00
Chris Morgan
f58dcd94fc docs(disp): LV_COLOR_SCREEN_TRANSP remove dependency on LV_COLOR_DEPTH_32 as transparency is supported across all color depths (#3556)
* Kconfig - LV_COLOR_SCREEN_TRANSP remove dependency on LV_COLOR_DEPTH_32 as transparency is supported across all color depths

* display.md - LV_COLOR_SCREEN_TRANSP remove mention of 32bpp requirement that is no longer necessary
2022-08-10 14:00:14 +02:00
Gabor Kiss-Vamosi
d59bba12db fix(colorwheel): fix updating color when using lv_colorwheel_set_hsv
fixes https://forum.lvgl.io/t/about-colorwheel-updates-bug/9522
2022-08-07 23:08:19 +02:00
Gabor Kiss-Vamosi
5022476edc remove accidentally added code 2022-08-07 23:07:10 +02:00
Gabor Kiss-Vamosi
b884abae26 fix(canvas): fix clipéping on transformation
fixes: #3545
2022-08-07 21:34:17 +02:00
卢华东
aa45d59852 fix(demo): can not found lvgl.h file (#3477) 2022-07-28 00:08:02 +02:00
Amir Gonnen
55e95ed351 fix(ci) checkout lv_micropython release/v8 branch (#3524) 2022-07-26 17:53:17 -04:00
Gabor Kiss-Vamosi
be485d7605 ci: protect test.c with #if LV_BUILD_TEST 2022-07-25 21:33:31 +02:00
Gabor Kiss-Vamosi
9024b72b48 update the changelog 2022-07-25 12:46:26 +02:00
Gabor Kiss-Vamosi
9b998aa47d Bump version numbers to v8.3.1 2022-07-25 12:44:28 +02:00
Gabor Kiss-Vamosi
71913d300d example(freetype): Update the Micropython example to use the Lato font 2022-07-25 12:43:17 +02:00
Adam Martini
284834e799 fix(led): add bg_color draw descriptors back to led draw event to support LV_DRAW_COMPLEX 0 (#3515)
Co-authored-by: Hopper Automation <automation_hopper@hopper.com>
2022-07-23 20:40:56 +02:00
Gabor Kiss-Vamosi
8544cc3806 example(freetype): replace the arial font with lato to avoid licensing issues
fixes https://github.com/zephyrproject-rtos/zephyr/issues/48111
2022-07-23 20:32:56 +02:00
s-hadinger
62662f68e9 docs(tasmota): support LVGL 8.3.0 (#3511) 2022-07-20 14:04:42 +02:00
Gabor Kiss-Vamosi
a283273bd2 fix(arc): fix arc knob invalidation in SYMMETRICAL mode
fixes #3465
2022-07-14 17:23:13 +02:00
Gabor Kiss-Vamosi
9750c97aff fix(refr): fix lv_refr_get_top_obj
related to https://forum.lvgl.io/t/how-to-speed-up-the-v8-version/9091/21
2022-07-14 17:22:54 +02:00
Gabor Kiss-Vamosi
2967172bee fix(slider): fix knob drawing in symmetrical mode 2022-07-14 17:22:46 +02:00
Badokas
9e1b6166b0 docs(readme): fix LVGL version typo (8.3.0) (#3462) 2022-07-07 21:07:17 +02:00
437 changed files with 28201 additions and 3968 deletions

View File

@@ -8,7 +8,7 @@ jobs:
build:
if: ${{ github.event_name != 'pull_request' || github.repository != github.event.pull_request.head.repo.full_name }}
name: Build ${{ matrix.port }} port
runs-on: ubuntu-latest
runs-on: ubuntu-20.04
continue-on-error: true
strategy:
matrix:
@@ -23,7 +23,7 @@ jobs:
- name: Clone lv_micropython
run: |
git clone https://github.com/lvgl/lv_micropython.git .
git checkout master
git checkout release/v8
- name: Initialize lv_bindings submodule
run: git submodule update --init --recursive lib/lv_bindings
- name: Update ${{ matrix.port }} port submodules

View File

@@ -36,6 +36,11 @@ jobs:
- uses: ammaraskar/gcc-problem-matcher@master
- name: Install prerequisites
run: scripts/install-prerequisites.sh
- name: Fix kernel mmap rnd bits
# Asan in llvm 14 provided in ubuntu 22.04 is incompatible with
# high-entropy ASLR in much newer kernels that GitHub runners are
# using leading to random crashes: https://reviews.llvm.org/D148280
run: sudo sysctl vm.mmap_rnd_bits=28
- name: Run tests
run: python tests/main.py --report test
- name: Upload coverage to Codecov
@@ -93,4 +98,12 @@ jobs:
echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc
run: |
if [[ "${{ matrix.distro }}" == "ubuntu22.04" ]]; then
# ASan in llvm 14 provided in ubuntu-22.04 is incompatible with
# high-entropy ASLR configured in much newer kernels that GitHub
# runners are using leading to random crashes:
# https://github.com/actions/runner-images/issues/9491
# can remove this once the issue is fixed.
sysctl -w vm.mmap_rnd_bits=28
fi
env PATH="/usr/lib/ccache:$PATH" ASAN_OPTIONS=detect_leaks=0 python3 tests/main.py test

View File

@@ -9,15 +9,22 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
persist-credentials: false
fetch-depth: 0
- name: Checkout astyle
uses: actions/checkout@v4
with:
repository: szepeviktor/astyle
path: astyle
ref: v3.4.12
- name: Install astyle
run: |
sudo add-apt-repository -y "deb http://archive.ubuntu.com/ubuntu `lsb_release -sc` main universe restricted multiverse"
sudo apt-get update -y -qq
sudo apt-get install astyle
cd astyle/build/gcc/
make
sudo make install
astyle --version
- name: Format code
run: python code-format.py
working-directory: scripts

View File

@@ -1,23 +1,23 @@
name: Push LVGL release to Espressif Component Service
# If the commit is tagged, it will be uploaded. Other scenario silently fail.
on:
push:
branches:
- master
jobs:
upload_components:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
with:
submodules: "recursive"
- name: Upload component to component registry
uses: espressif/github-actions/upload_components@master
with:
name: "lvgl"
version: "git"
namespace: "lvgl"
api_token: ${{ secrets.ESP_IDF_COMPONENT_API_TOKEN }}
name: Push LVGL release to Espressif Component Service
# If the commit is tagged, it will be uploaded. Other scenario silently fail.
on:
push:
tags:
- v*
jobs:
upload_components:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
submodules: "recursive"
- name: Upload component to component registry
uses: espressif/upload-components-ci-action@v1
with:
name: "lvgl"
version: ${{ github.ref_name }}
namespace: "lvgl"
api_token: ${{ secrets.ESP_IDF_COMPONENT_API_TOKEN }}

35
Kconfig
View File

@@ -42,11 +42,9 @@ menu "LVGL configuration"
config LV_COLOR_SCREEN_TRANSP
bool "Enable more complex drawing routines to manage screens transparency."
depends on LV_COLOR_DEPTH_32
help
Can be used if the UI is above another layer, e.g. an OSD menu or video player.
Requires `LV_COLOR_DEPTH = 32` colors and the screen's `bg_opa` should be set to
non LV_OPA_COVER value
The screen's `bg_opa` should be set to non LV_OPA_COVER value
config LV_COLOR_MIX_ROUND_OFS
int "Adjust color mix functions rounding"
@@ -230,6 +228,16 @@ menu "LVGL configuration"
Must be defined to include path of CMSIS header of target processor
e.g. "stm32f769xx.h" or "stm32f429xx.h"
config LV_USE_GPU_RA6M3_G2D
bool "Enable RA6M3 G2D GPU."
config LV_GPU_RA6M3_G2D_INCLUDE
string "include path of target processor"
depends on LV_USE_GPU_RA6M3_G2D
default "hal_data.h"
help
Must be defined to include path of target processor
e.g. "hal_data.h"
config LV_USE_GPU_SWM341_DMA2D
bool "Enable SWM341 DMA2D GPU."
config LV_GPU_SWM341_DMA2D_INCLUDE
@@ -913,7 +921,8 @@ menu "LVGL configuration"
string "Set the working directory"
depends on LV_USE_FS_STDIO
config LV_FS_STDIO_CACHE_SIZE
string ">0 to cache this number of bytes in lv_fs_read()"
int ">0 to cache this number of bytes in lv_fs_read()"
default 0
depends on LV_USE_FS_STDIO
config LV_USE_FS_POSIX
@@ -955,6 +964,17 @@ menu "LVGL configuration"
default 0
depends on LV_USE_FS_FATFS
config LV_USE_FS_LITTLEFS
bool "File system on top of LittleFS"
config LV_FS_LITTLEFS_LETTER
int "Set an upper cased letter on which the drive will accessible (e.g. 'A' i.e. 65)"
default 0
depends on LV_USE_FS_LITTLEFS
config LV_FS_LITTLEFS_CACHE_SIZE
int ">0 to cache this number of bytes in lv_fs_read()"
default 0
depends on LV_USE_FS_LITTLEFS
config LV_USE_PNG
bool "PNG decoder library"
@@ -991,6 +1011,13 @@ menu "LVGL configuration"
endmenu
endif
config LV_USE_TINY_TTF
bool "Tiny TTF library"
config LV_TINY_TTF_FILE_SUPPORT
bool "Load TTF data from files"
depends on LV_USE_TINY_TTF
default n
config LV_USE_RLOTTIE
bool "Lottie library"

View File

@@ -16,10 +16,8 @@ LVGL provides everything you need to create an embedded GUI with easy-to-use gra
<a href="https://docs.lvgl.io/master/examples.html">Interactive examples</a>
</h4>
**English** | [中文](./README_zh.md) | [Português do Brasil](./README_pt_BR.md)
---
#### Table of content

View File

@@ -1,9 +1,4 @@
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
#include "lvgl.h"
#else
#include "lvgl/lvgl.h"
#endif
#include "../../../lvgl.h"
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN

View File

@@ -89,7 +89,7 @@ LV_FONT_DECLARE(lv_font_benchmark_montserrat_16_compr_az);
LV_FONT_DECLARE(lv_font_benchmark_montserrat_28_compr_az);
static void monitor_cb(lv_disp_drv_t * drv, uint32_t time, uint32_t px);
static void scene_next_task_cb(lv_timer_t * timer);
static void next_scene_timer_cb(lv_timer_t * timer);
static void rect_create(lv_style_t * style);
static void img_create(lv_style_t * style, const void * src, bool rotate, bool zoom, bool aa);
static void txt_create(lv_style_t * style);
@@ -226,7 +226,6 @@ static void shadow_small_ofs_cb(void)
rect_create(&style_common);
}
static void shadow_large_cb(void)
{
lv_style_reset(&style_common);
@@ -250,7 +249,6 @@ static void shadow_large_ofs_cb(void)
rect_create(&style_common);
}
static void img_rgb_cb(void)
{
lv_style_reset(&style_common);
@@ -293,7 +291,6 @@ static void img_alpha_cb(void)
img_create(&style_common, &img_benchmark_cogwheel_alpha16, false, false, false);
}
static void img_rgb_recolor_cb(void)
{
lv_style_reset(&style_common);
@@ -382,7 +379,6 @@ static void img_rgb_zoom_aa_cb(void)
lv_style_set_img_opa(&style_common, opa_mode ? LV_OPA_50 : LV_OPA_COVER);
img_create(&style_common, &img_benchmark_cogwheel_rgb, false, true, true);
}
static void img_argb_zoom_cb(void)
@@ -396,7 +392,6 @@ static void img_argb_zoom_cb(void)
#endif
}
static void img_argb_zoom_aa_cb(void)
{
lv_style_reset(&style_common);
@@ -462,7 +457,6 @@ static void txt_large_compr_cb(void)
}
static void line_cb(void)
{
lv_style_reset(&style_common);
@@ -490,7 +484,6 @@ static void arc_thick_cb(void)
}
static void sub_rectangle_cb(void)
{
lv_style_reset(&style_common);
@@ -563,8 +556,6 @@ static void sub_text_cb(void)
txt_create(&style_common);
}
/**********************
* STATIC VARIABLES
**********************/
@@ -636,7 +627,7 @@ static lv_obj_t * scene_bg;
static lv_obj_t * title;
static lv_obj_t * subtitle;
static uint32_t rnd_act;
static lv_timer_t * next_scene_timer;
static const uint32_t rnd_map[] = {
0xbd13204f, 0x67d8167f, 0x20211c99, 0xb0a7cc05,
@@ -702,15 +693,26 @@ static void benchmark_init(void)
lv_obj_update_layout(scr);
}
void lv_demo_benchmark(void)
{
benchmark_init();
/*Manually start scenes*/
scene_next_task_cb(NULL);
next_scene_timer_cb(NULL);
}
void lv_demo_benchmark_close(void)
{
if(next_scene_timer) lv_timer_del(next_scene_timer);
next_scene_timer = NULL;
lv_anim_del(NULL, NULL);
lv_style_reset(&style_common);
lv_obj_clean(lv_scr_act());
}
void lv_demo_benchmark_run_scene(int_fast16_t scene_no)
{
@@ -725,7 +727,8 @@ void lv_demo_benchmark_run_scene(int_fast16_t scene_no)
scene_act = scene_no >> 1;
if(scenes[scene_act].create_cb) {
lv_label_set_text_fmt(title, "%"LV_PRId32"/%d: %s%s", scene_act * 2 + (opa_mode ? 1 : 0), (int)(dimof(scenes) * 2) - 2,
lv_label_set_text_fmt(title, "%"LV_PRId32"/%"LV_PRId32": %s%s", scene_act * 2 + (opa_mode ? 1 : 0),
(int32_t)(dimof(scenes) * 2) - 2,
scenes[scene_act].name, opa_mode ? " + opa" : "");
lv_label_set_text(subtitle, "");
@@ -737,7 +740,6 @@ void lv_demo_benchmark_run_scene(int_fast16_t scene_no)
}
}
void lv_demo_benchmark_set_finished_cb(finished_cb_t * finished_cb)
{
benchmark_finished_cb = finished_cb;
@@ -786,7 +788,6 @@ static void generate_report(void)
weight_opa_sum += w;
}
fps_sum = fps_normal_sum + fps_opa_sum;
weight_sum = weight_normal_sum + weight_opa_sum;
@@ -803,7 +804,6 @@ static void generate_report(void)
lv_obj_clean(lv_scr_act());
scene_bg = NULL;
lv_obj_set_flex_flow(lv_scr_act(), LV_FLEX_FLOW_COLUMN);
title = lv_label_create(lv_scr_act());
@@ -839,7 +839,6 @@ static void generate_report(void)
// lv_obj_add_style(table, LV_TABLE_PART_CELL3, &style_cell_very_slow);
// lv_obj_add_style(table, LV_TABLE_PART_CELL4, &style_cell_title);
uint16_t row = 0;
lv_table_add_cell_ctrl(table, row, 0, LV_TABLE_CELL_CTRL_MERGE_RIGHT);
lv_table_set_cell_value(table, row, 0, "Slow but common cases");
@@ -926,7 +925,6 @@ static void generate_report(void)
lv_snprintf(buf, sizeof(buf), "%"LV_PRIu32, scenes[i].fps_opa);
lv_table_set_cell_value(table, row, 1, buf);
if(scenes[i].fps_opa < 10) {
// lv_table_set_cell_type(table, row, 0, 3);
// lv_table_set_cell_type(table, row, 1, 3);
@@ -972,11 +970,13 @@ static void report_cb(lv_timer_t * timer)
}
}
static void scene_next_task_cb(lv_timer_t * timer)
static void next_scene_timer_cb(lv_timer_t * timer)
{
LV_UNUSED(timer);
lv_obj_clean(scene_bg);
next_scene_timer = NULL;
if(opa_mode) {
if(scene_act >= 0) {
if(scenes[scene_act].time_sum_opa == 0) scenes[scene_act].time_sum_opa = 1;
@@ -995,8 +995,8 @@ static void scene_next_task_cb(lv_timer_t * timer)
}
if(scenes[scene_act].create_cb) {
lv_label_set_text_fmt(title, "%"LV_PRId32"/%d: %s%s", scene_act * 2 + (opa_mode ? 1 : 0),
(int)(dimof(scenes) * 2) - 2, scenes[scene_act].name, opa_mode ? " + opa" : "");
lv_label_set_text_fmt(title, "%"LV_PRId32"/%"LV_PRId32": %s%s", scene_act * 2 + (opa_mode ? 1 : 0),
(int32_t)(dimof(scenes) * 2) - 2, scenes[scene_act].name, opa_mode ? " + opa" : "");
if(opa_mode) {
lv_label_set_text_fmt(subtitle, "Result of \"%s\": %"LV_PRId32" FPS", scenes[scene_act].name,
scenes[scene_act].fps_normal);
@@ -1013,8 +1013,8 @@ static void scene_next_task_cb(lv_timer_t * timer)
rnd_reset();
scenes[scene_act].create_cb();
lv_timer_t * t = lv_timer_create(scene_next_task_cb, SCENE_TIME, NULL);
lv_timer_set_repeat_count(t, 1);
next_scene_timer = lv_timer_create(next_scene_timer_cb, SCENE_TIME, NULL);
lv_timer_set_repeat_count(next_scene_timer, 1);
}
/*Ready*/
@@ -1036,7 +1036,6 @@ static void scene_next_task_cb(lv_timer_t * timer)
}
}
static void rect_create(lv_style_t * style)
{
uint32_t i;
@@ -1054,7 +1053,6 @@ static void rect_create(lv_style_t * style)
}
}
static void img_create(lv_style_t * style, const void * src, bool rotate, bool zoom, bool aa)
{
uint32_t i;
@@ -1073,7 +1071,6 @@ static void img_create(lv_style_t * style, const void * src, bool rotate, bool z
}
}
static void txt_create(lv_style_t * style)
{
uint32_t i;
@@ -1089,7 +1086,6 @@ static void txt_create(lv_style_t * style)
}
}
static void line_create(lv_style_t * style)
{
static lv_point_t points[OBJ_NUM][LINE_POINT_NUM];
@@ -1104,7 +1100,6 @@ static void line_create(lv_style_t * style)
points[i][j].y = rnd_next(LINE_POINT_DIFF_MIN, LINE_POINT_DIFF_MAX);
}
lv_obj_t * obj = lv_line_create(scene_bg);
lv_obj_remove_style_all(obj);
lv_obj_add_style(obj, style, 0);
@@ -1117,7 +1112,6 @@ static void line_create(lv_style_t * style)
}
}
static void arc_anim_end_angle_cb(void * var, int32_t v)
{
lv_arc_set_end_angle(var, v);
@@ -1151,7 +1145,6 @@ static void arc_create(lv_style_t * style)
}
}
static void fall_anim_y_cb(void * var, int32_t v)
{
lv_obj_set_y(var, v);

View File

@@ -24,12 +24,13 @@ extern "C" {
**********************/
typedef void finished_cb_t(void);
/**********************
* GLOBAL PROTOTYPES
**********************/
void lv_demo_benchmark(void);
void lv_demo_benchmark_close(void);
void lv_demo_benchmark_run_scene(int_fast16_t scene_no);
void lv_demo_benchmark_set_finished_cb(finished_cb_t * finished_cb);

View File

@@ -46,8 +46,11 @@ static lv_obj_t * t2;
void lv_demo_keypad_encoder(void)
{
g = lv_group_create();
lv_group_set_default(g);
g = lv_group_get_default();
if(g == NULL) {
g = lv_group_create();
lv_group_set_default(g);
}
lv_indev_t * cur_drv = NULL;
for(;;) {
@@ -76,6 +79,12 @@ void lv_demo_keypad_encoder(void)
msgbox_create();
}
void lv_demo_keypad_encoder_close(void)
{
lv_obj_clean(lv_scr_act());
lv_obj_clean(lv_layer_top());
}
/**********************
* STATIC FUNCTIONS
**********************/

View File

@@ -27,6 +27,7 @@ extern "C" {
* GLOBAL PROTOTYPES
**********************/
void lv_demo_keypad_encoder(void);
void lv_demo_keypad_encoder_close(void);
/**********************
* MACROS

View File

@@ -47,7 +47,6 @@ extern "C" {
* GLOBAL PROTOTYPES
**********************/
/**********************
* MACROS
**********************/

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

View File

@@ -103,6 +103,12 @@ static const uint32_t time_list[] = {
2 * 60 + 19,
};
#if LV_DEMO_MUSIC_AUTO_PLAY
static lv_timer_t * auto_step_timer;
#endif
static lv_color_t original_screen_bg_color;
/**********************
* MACROS
**********************/
@@ -113,16 +119,33 @@ static const uint32_t time_list[] = {
void lv_demo_music(void)
{
original_screen_bg_color = lv_obj_get_style_bg_color(lv_scr_act(), 0);
lv_obj_set_style_bg_color(lv_scr_act(), lv_color_hex(0x343247), 0);
list = _lv_demo_music_list_create(lv_scr_act());
ctrl = _lv_demo_music_main_create(lv_scr_act());
#if LV_DEMO_MUSIC_AUTO_PLAY
lv_timer_create(auto_step_cb, 1000, NULL);
auto_step_timer = lv_timer_create(auto_step_cb, 1000, NULL);
#endif
}
void lv_demo_music_close(void)
{
/*Delete all aniamtions*/
lv_anim_del(NULL, NULL);
#if LV_DEMO_MUSIC_AUTO_PLAY
lv_timer_del(auto_step_timer);
#endif
_lv_demo_music_list_close();
_lv_demo_music_main_close();
lv_obj_clean(lv_scr_act());
lv_obj_set_style_bg_color(lv_scr_act(), original_screen_bg_color, 0);
}
const char * _lv_demo_music_get_title(uint32_t track_id)
{
if(track_id >= sizeof(title_list) / sizeof(title_list[0])) return NULL;

View File

@@ -36,6 +36,8 @@ extern "C" {
**********************/
void lv_demo_music(void);
void lv_demo_music_close(void);
const char * _lv_demo_music_get_title(uint32_t track_id);
const char * _lv_demo_music_get_artist(uint32_t track_id);
const char * _lv_demo_music_get_genre(uint32_t track_id);

View File

@@ -130,6 +130,18 @@ lv_obj_t * _lv_demo_music_list_create(lv_obj_t * parent)
return list;
}
void _lv_demo_music_list_close(void)
{
lv_style_reset(&style_scrollbar);
lv_style_reset(&style_btn);
lv_style_reset(&style_btn_pr);
lv_style_reset(&style_btn_chk);
lv_style_reset(&style_btn_dis);
lv_style_reset(&style_title);
lv_style_reset(&style_artist);
lv_style_reset(&style_time);
}
void _lv_demo_music_list_btn_check(uint32_t track_id, bool state)
{
lv_obj_t * btn = lv_obj_get_child(list, track_id);
@@ -205,7 +217,6 @@ static lv_obj_t * add_list_btn(lv_obj_t * parent, uint32_t track_id)
return btn;
}
static void btn_click_event_cb(lv_event_t * e)
{
lv_obj_t * btn = lv_event_get_target(e);
@@ -215,4 +226,3 @@ static void btn_click_event_cb(lv_event_t * e)
_lv_demo_music_play(idx);
}
#endif /*LV_USE_DEMO_MUSIC*/

View File

@@ -28,6 +28,8 @@ extern "C" {
* GLOBAL PROTOTYPES
**********************/
lv_obj_t * _lv_demo_music_list_create(lv_obj_t * parent);
void _lv_demo_music_list_close(void);
void _lv_demo_music_list_btn_check(uint32_t track_id, bool state);
/**********************

View File

@@ -60,7 +60,7 @@ static void prev_click_event_cb(lv_event_t * e);
static void next_click_event_cb(lv_event_t * e);
static void timer_cb(lv_timer_t * t);
static void track_load(uint32_t id);
static void stop_start_anim(lv_timer_t * t);
static void stop_start_anim_timer_cb(lv_timer_t * t);
static void spectrum_end_cb(lv_anim_t * a);
static void album_fade_anim_cb(void * var, int32_t v);
static int32_t get_cos(int32_t deg, int32_t a);
@@ -84,6 +84,7 @@ static uint32_t spectrum_lane_ofs_start = 0;
static uint32_t bar_rot = 0;
static uint32_t time_act;
static lv_timer_t * sec_counter_timer;
static lv_timer_t * stop_start_anim_timer;
static const lv_font_t * font_small;
static const lv_font_t * font_large;
static uint32_t track_id;
@@ -232,8 +233,8 @@ lv_obj_t * _lv_demo_music_main_create(lv_obj_t * parent)
start_anim = true;
lv_timer_t * timer = lv_timer_create(stop_start_anim, INTRO_TIME + 6000, NULL);
lv_timer_set_repeat_count(timer, 1);
stop_start_anim_timer = lv_timer_create(stop_start_anim_timer_cb, INTRO_TIME + 6000, NULL);
lv_timer_set_repeat_count(stop_start_anim_timer, 1);
lv_anim_init(&a);
lv_anim_set_path_cb(&a, lv_anim_path_bounce);
@@ -292,6 +293,12 @@ lv_obj_t * _lv_demo_music_main_create(lv_obj_t * parent)
return main_cont;
}
void _lv_demo_music_main_close(void)
{
if(stop_start_anim_timer) lv_timer_del(stop_start_anim_timer);
lv_timer_del(sec_counter_timer);
}
void _lv_demo_music_album_next(bool next)
{
uint32_t id = track_id;
@@ -762,7 +769,7 @@ static void spectrum_draw_event_cb(lv_event_t * e)
lv_obj_t * obj = lv_event_get_target(e);
lv_draw_ctx_t * draw_ctx = lv_event_get_draw_ctx(e);
lv_opa_t opa = lv_obj_get_style_opa(obj, LV_PART_MAIN);
lv_opa_t opa = lv_obj_get_style_opa_recursive(obj, LV_PART_MAIN);
if(opa < LV_OPA_MIN) return;
lv_point_t poly[4];
@@ -974,7 +981,6 @@ static void next_click_event_cb(lv_event_t * e)
}
}
static void timer_cb(lv_timer_t * t)
{
LV_UNUSED(t);
@@ -989,11 +995,11 @@ static void spectrum_end_cb(lv_anim_t * a)
_lv_demo_music_album_next(true);
}
static void stop_start_anim(lv_timer_t * t)
static void stop_start_anim_timer_cb(lv_timer_t * t)
{
LV_UNUSED(t);
start_anim = false;
stop_start_anim_timer = NULL;
lv_obj_refresh_ext_draw_size(spectrum_obj);
}
@@ -1002,4 +1008,3 @@ static void album_fade_anim_cb(void * var, int32_t v)
lv_obj_set_style_img_opa(var, v, 0);
}
#endif /*LV_USE_DEMO_MUSIC*/

View File

@@ -28,6 +28,8 @@ extern "C" {
* GLOBAL PROTOTYPES
**********************/
lv_obj_t * _lv_demo_music_main_create(lv_obj_t * parent);
void _lv_demo_music_main_close(void);
void _lv_demo_music_play(uint32_t id);
void _lv_demo_music_resume(void);
void _lv_demo_music_pause(void);
@@ -38,7 +40,6 @@ void _lv_demo_music_album_next(bool next);
**********************/
#endif /*LV_USE_DEMO_MUSIC*/
#ifdef __cplusplus
} /* extern "C" */
#endif

View File

@@ -25,7 +25,7 @@ static void msgbox_del(lv_timer_t * tmr);
static void set_y_anim(void * obj, int32_t v);
static void set_width_anim(void * obj, int32_t v);
static void arc_set_end_angle_anim(void * obj, int32_t v);
static void obj_test_task_cb(lv_timer_t * tmr);
static void obj_test_timer_cb(lv_timer_t * tmr);
/**********************
* STATIC VARIABLES
@@ -34,6 +34,10 @@ static lv_obj_t * main_page;
static lv_obj_t * ta;
static const char * mbox_btns[] = {"Ok", "Cancel", ""};
static uint32_t mem_free_start = 0;
static lv_timer_t * obj_test_timer;
static int16_t state;
static lv_timer_t * msgbox_tmr;
/**********************
* MACROS
**********************/
@@ -45,23 +49,34 @@ static uint32_t mem_free_start = 0;
void lv_demo_stress(void)
{
LV_LOG_USER("Starting stress test. (< 100 bytes permanent memory leak is normal due to fragmentation)");
lv_timer_create(obj_test_task_cb, LV_DEMO_STRESS_TIME_STEP, NULL);
obj_test_timer = lv_timer_create(obj_test_timer_cb, LV_DEMO_STRESS_TIME_STEP, NULL);
state = -1;
}
void lv_demo_stress_close(void)
{
lv_timer_del(obj_test_timer);
obj_test_timer = NULL;
if(msgbox_tmr) {
lv_timer_del(msgbox_tmr);
msgbox_tmr = NULL;
}
lv_obj_clean(lv_scr_act());
lv_obj_clean(lv_layer_top());
}
/**********************
* STATIC FUNCTIONS
**********************/
static void obj_test_task_cb(lv_timer_t * tmr)
static void obj_test_timer_cb(lv_timer_t * tmr)
{
(void) tmr; /*Unused*/
static int16_t state = -1;
lv_anim_t a;
lv_obj_t * obj;
// printf("step start: %d\n", state);
switch(state) {
case -1: {
lv_res_t res = lv_mem_test();
@@ -83,7 +98,6 @@ static void obj_test_task_cb(lv_timer_t * tmr)
lv_obj_set_size(main_page, LV_HOR_RES / 2, LV_VER_RES);
lv_obj_set_flex_flow(main_page, LV_FLEX_FLOW_COLUMN);
obj = lv_btn_create(main_page);
lv_obj_set_size(obj, 100, 70);
obj = lv_label_create(obj);
@@ -246,8 +260,7 @@ static void obj_test_task_cb(lv_timer_t * tmr)
case 14:
obj = lv_msgbox_create(NULL, "Title", "Some text on the message box with average length", mbox_btns, true);
lv_timer_t * msgbox_tmr = lv_timer_create(msgbox_del, LV_DEMO_STRESS_TIME_STEP * 5 + 30, obj);
msgbox_tmr = lv_timer_create(msgbox_del, LV_DEMO_STRESS_TIME_STEP * 5 + 30, obj);
lv_timer_set_repeat_count(msgbox_tmr, 1);
lv_obj_align(obj, LV_ALIGN_RIGHT_MID, -10, 0);
break;
@@ -439,6 +452,7 @@ static void auto_del(lv_obj_t * obj, uint32_t delay)
static void msgbox_del(lv_timer_t * tmr)
{
msgbox_tmr = NULL;
lv_msgbox_close(tmr->user_data);
}

View File

@@ -30,6 +30,8 @@ extern "C" {
**********************/
void lv_demo_stress(void);
void lv_demo_stress_close(void);
/**********************
* MACROS
**********************/

View File

@@ -86,6 +86,8 @@ static uint32_t session_desktop = 1000;
static uint32_t session_tablet = 1000;
static uint32_t session_mobile = 1000;
static lv_timer_t * meter2_timer;
/**********************
* MACROS
**********************/
@@ -196,6 +198,22 @@ void lv_demo_widgets(void)
color_changer_create(tv);
}
void lv_demo_widgets_close(void)
{
/*Delete all animation*/
lv_anim_del(NULL, NULL);
lv_timer_del(meter2_timer);
meter2_timer = NULL;
lv_obj_clean(lv_scr_act());
lv_style_reset(&style_text_muted);
lv_style_reset(&style_title);
lv_style_reset(&style_icon);
lv_style_reset(&style_bullet);
}
/**********************
* STATIC FUNCTIONS
**********************/
@@ -340,7 +358,6 @@ static void profile_create(lv_obj_t * parent)
LV_GRID_TEMPLATE_LAST
};
lv_obj_set_grid_dsc_array(parent, grid_main_col_dsc, grid_main_row_dsc);
lv_obj_set_grid_cell(panel1, LV_GRID_ALIGN_STRETCH, 0, 2, LV_GRID_ALIGN_CENTER, 0, 1);
@@ -368,7 +385,6 @@ static void profile_create(lv_obj_t * parent)
lv_obj_set_grid_cell(gender, LV_GRID_ALIGN_STRETCH, 0, 1, LV_GRID_ALIGN_CENTER, 6, 1);
lv_obj_set_grid_cell(gender_label, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_START, 5, 1);
lv_obj_set_grid_cell(panel3, LV_GRID_ALIGN_STRETCH, 1, 1, LV_GRID_ALIGN_STRETCH, 1, 1);
lv_obj_set_grid_dsc_array(panel3, grid_2_col_dsc, grid_2_row_dsc);
lv_obj_set_grid_cell(panel3_title, LV_GRID_ALIGN_START, 0, 2, LV_GRID_ALIGN_CENTER, 0, 1);
@@ -383,7 +399,6 @@ static void profile_create(lv_obj_t * parent)
static lv_coord_t grid_main_col_dsc[] = {LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
static lv_coord_t grid_main_row_dsc[] = {LV_GRID_CONTENT, LV_GRID_CONTENT, LV_GRID_TEMPLATE_LAST};
/*Create the top panel*/
static lv_coord_t grid_1_col_dsc[] = {LV_GRID_CONTENT, 1, LV_GRID_CONTENT, LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
static lv_coord_t grid_1_row_dsc[] = {
@@ -411,7 +426,6 @@ static void profile_create(lv_obj_t * parent)
LV_GRID_TEMPLATE_LAST
};
lv_obj_set_grid_dsc_array(parent, grid_main_col_dsc, grid_main_row_dsc);
lv_obj_set_grid_cell(panel1, LV_GRID_ALIGN_STRETCH, 0, 2, LV_GRID_ALIGN_CENTER, 0, 1);
@@ -456,7 +470,6 @@ static void profile_create(lv_obj_t * parent)
static lv_coord_t grid_main_row_dsc[] = {LV_GRID_CONTENT, LV_GRID_CONTENT, LV_GRID_CONTENT, LV_GRID_TEMPLATE_LAST};
lv_obj_set_grid_dsc_array(parent, grid_main_col_dsc, grid_main_row_dsc);
/*Create the top panel*/
static lv_coord_t grid_1_col_dsc[] = {LV_GRID_CONTENT, LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
static lv_coord_t grid_1_row_dsc[] = {LV_GRID_CONTENT, /*Avatar*/
@@ -471,7 +484,6 @@ static void profile_create(lv_obj_t * parent)
lv_obj_set_grid_dsc_array(panel1, grid_1_col_dsc, grid_1_row_dsc);
static lv_coord_t grid_2_col_dsc[] = {LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
static lv_coord_t grid_2_row_dsc[] = {
LV_GRID_CONTENT, /*Title*/
@@ -526,7 +538,6 @@ static void profile_create(lv_obj_t * parent)
}
}
static void analytics_create(lv_obj_t * parent)
{
lv_obj_set_flex_flow(parent, LV_FLEX_FLOW_ROW_WRAP);
@@ -698,7 +709,7 @@ static void analytics_create(lv_obj_t * parent)
lv_meter_set_indicator_start_value(meter2, meter2_indic[2], 70);
lv_meter_set_indicator_end_value(meter2, meter2_indic[2], 99);
lv_timer_create(meter2_timer_cb, 100, meter2_indic);
meter2_timer = lv_timer_create(meter2_timer_cb, 100, meter2_indic);
meter3 = create_meter_box(parent, "Network Speed", "Low speed", "Normal Speed", "High Speed");
if(disp_size < DISP_LARGE) lv_obj_add_flag(lv_obj_get_parent(meter3), LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
@@ -840,7 +851,6 @@ void shop_create(lv_obj_t * parent)
lv_obj_set_size(chart3, lv_pct(100), lv_pct(100));
lv_obj_set_style_pad_column(chart3, LV_DPX(30), 0);
lv_obj_set_grid_dsc_array(panel1, grid1_col_dsc, grid1_row_dsc);
lv_obj_set_grid_cell(title, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_START, 0, 1);
lv_obj_set_grid_cell(date, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_START, 1, 1);
@@ -956,7 +966,6 @@ void shop_create(lv_obj_t * parent)
cb = lv_checkbox_create(notifications);
lv_checkbox_set_text(cb, "Out of stock");
}
static void color_changer_create(lv_obj_t * parent)
@@ -1162,7 +1171,6 @@ static lv_obj_t * create_meter_box(lv_obj_t * parent, const char * title, const
lv_obj_set_grid_cell(label3, LV_GRID_ALIGN_STRETCH, 1, 1, LV_GRID_ALIGN_START, 4, 1);
}
return meter;
}
@@ -1380,7 +1388,6 @@ static void chart_event_cb(lv_event_t * e)
}
#endif
const lv_chart_series_t * ser = dsc->sub_part_ptr;
if(lv_chart_get_pressed_point(obj) == dsc->id) {
@@ -1446,7 +1453,6 @@ static void chart_event_cb(lv_event_t * e)
}
}
static void shop_chart_event_cb(lv_event_t * e)
{
lv_event_code_t code = lv_event_get_code(e);
@@ -1498,7 +1504,6 @@ static void shop_chart_event_cb(lv_event_t * e)
}
}
static void meter1_indic1_anim_cb(void * var, int32_t v)
{
lv_meter_set_indicator_end_value(meter1, var, v);
@@ -1535,7 +1540,6 @@ static void meter2_timer_cb(lv_timer_t * timer)
static bool down2 = false;
static bool down3 = false;
if(down1) {
session_desktop -= 137;
if(session_desktop < 1400) down1 = false;

View File

@@ -27,6 +27,7 @@ extern "C" {
* GLOBAL PROTOTYPES
**********************/
void lv_demo_widgets(void);
void lv_demo_widgets_close(void);
/**********************
* MACROS

View File

@@ -1,7 +1,350 @@
# Changelog
## [v8.3.11](https://github.com/lvgl/lvgl/compare/v8.3.11...v8.3.10) 6 December 2023
## [v8.2.0](https://github.com/lvgl/lvgl/compare/v8.2.0...v8.2.0) 6 July 2022
### New Features
- feat(table): add user_data to table cells [`4767`](https://github.com/lvgl/lvgl/pull/4767)
- feat(tiny_ttf): backport Tiny TTF to lvgl 8 [`4727`](https://github.com/lvgl/lvgl/pull/4727)
- feat(littlefs): add lv_fs_littlefs system as a driver [`4677`](https://github.com/lvgl/lvgl/pull/4677)
### Fixes
- fix(obj): readjust scroll after layout when child removed [`4921`](https://github.com/lvgl/lvgl/pull/4921)
- fix(rt-thread): fix create lvgl thread problem [`4862`](https://github.com/lvgl/lvgl/pull/4862)
- fix(obj): fix arduino compile warnings [`4807`](https://github.com/lvgl/lvgl/pull/4807)
- fix(table):fix issue with abnormal string output of 'lv_table_set_cell_value_fmt' [`4804`](https://github.com/lvgl/lvgl/pull/4804)
- fix(table) user data API functions renamed [`4769`](https://github.com/lvgl/lvgl/pull/4769)
- fix(ime_pinyin): keep cursor in the textarea when a candidate is pressed [`4731`](https://github.com/lvgl/lvgl/pull/4731)
- fix(draw_needles): changed needle line draw start point from scale ce… [`4682`](https://github.com/lvgl/lvgl/pull/4682)
- fix(arc): handle click outside background angle range (#4586) [`4667`](https://github.com/lvgl/lvgl/pull/4667)
- fix(meter): fix minor issues [`4657`](https://github.com/lvgl/lvgl/pull/4657)
- fix(draw): fix compiler error in lv_draw_sw_transform.c #2 [`4612`](https://github.com/lvgl/lvgl/pull/4612)
- fix(dropdown): avoid partial match in lv_dropdown_get_option_index [`4598`](https://github.com/lvgl/lvgl/pull/4598)
- fix(dropdown): reset char_i = 0, avoid access overflow [`4589`](https://github.com/lvgl/lvgl/pull/4589)
- fix(btnmatrix): set LV_BTNMATRIX_BTN_NONE when clicking of disabled button (#4571) [`4578`](https://github.com/lvgl/lvgl/pull/4578)
- fix(qrcode): use LV_ASSERT instead of assert [`1840dec`](https://github.com/lvgl/lvgl/commit/1840decb4136ba01552fcb7cedb0ff759824e2fd)
- fix: fix warning in lv_draw_sw_letter.c [`d22cda3`](https://github.com/lvgl/lvgl/commit/d22cda3cdb15cee95763491db95753980846d9f9)
- fix(arc): fix setting value by click [`20b6199`](https://github.com/lvgl/lvgl/commit/20b6199ba90319942c3cd91f2c727da6cd40cd2d)
- fix(disp): fix infinite recursive SCREEN_LOADED events [`ef76206`](https://github.com/lvgl/lvgl/commit/ef76206c75ea9de26407534a9ce1079dc8e750e3)
- fix(keyboard): add '&' character [`d20bd1c`](https://github.com/lvgl/lvgl/commit/d20bd1ca397ff954167dd496cf1a78da8814f602)
- fix(draw): fix scaling rectangle parts with opa [`7a8fcbf`](https://github.com/lvgl/lvgl/commit/7a8fcbfd3458739cbe64b29767a969ece9542039)
### Docs
- docs(obj): fix wording [`4625`](https://github.com/lvgl/lvgl/pull/4625)
- docs(label): update text for recoloring [`4606`](https://github.com/lvgl/lvgl/pull/4606)
- docs: fix typo [`9fbac75`](https://github.com/lvgl/lvgl/commit/9fbac7570bdec18ddbb157b59f5e26a2ebdf5daf)
### Others
- chore(cmsis-pack): prepare for v8.3.11 [`4936`](https://github.com/lvgl/lvgl/pull/4936)
- chore(cmake): add support for user-specified lv_conf.h path [`4689`](https://github.com/lvgl/lvgl/pull/4689)
- STM32U5 DMA2D support (8.3) [`4643`](https://github.com/lvgl/lvgl/pull/4643)
- backport: fix(lv_disp): fix lv_scr_load_anim being called twice quickly [`4629`](https://github.com/lvgl/lvgl/pull/4629)
- chore(lv_draw_sw_letter.c): Fix print format [`4615`](https://github.com/lvgl/lvgl/pull/4615)
- chore: fix compile error [`7568df7`](https://github.com/lvgl/lvgl/commit/7568df77d16ecbf2242b2bc290dc8fc0eb29cf5a)
## [v8.3.10](https://github.com/lvgl/lvgl/compare/v8.3.10...v8.3.9) 20 September 2023
### New Features
- feat(disp): add double buffered direct-mode efficient sync algorithm (v8.3) [`4497`](https://github.com/lvgl/lvgl/pull/4497)
- feat(style): backport opa_layered [`6548ea0`](https://github.com/lvgl/lvgl/commit/6548ea0f291be8a97afb3c4d7dcabbe465ae5a04)
### Fixes
- fix: build on Windows (MinGW environment) [`4538`](https://github.com/lvgl/lvgl/pull/4538)
- fix(docs): dropdown: fix function name in description of static options [`4535`](https://github.com/lvgl/lvgl/pull/4535)
- fix: do not copy invalid areas if not double buffered mode [`4526`](https://github.com/lvgl/lvgl/pull/4526)
- fix(sdl): add missing parameter in lv_draw_sdl_composite_texture_obtain [`4490`](https://github.com/lvgl/lvgl/pull/4490)
- fix(dropdown): position to the selected item in lv_dropdown_set_selected [`f174589`](https://github.com/lvgl/lvgl/commit/f174589240b099a349e54ba09aa9b39c2b347341)
- fix(vglite): be sure end_angle > start_angle in arc drawing [`01cd1fe`](https://github.com/lvgl/lvgl/commit/01cd1fed9db974aa616a6289a29171b7a971cd89)
- fix(btnmatrix): fix tapping just outside a button in a buttonmatrix [`8063fac`](https://github.com/lvgl/lvgl/commit/8063fac793b0a09add1e57c1115b734659274e6f)
### Docs
- docs(calendar): update according to v8.2 changes [`a296456`](https://github.com/lvgl/lvgl/commit/a296456591f6ff0e3b3ae6cdcdd9ec5b1711c357)
- docs(simulator): remove SDL support from the Visual Studio project [`bcebafe`](https://github.com/lvgl/lvgl/commit/bcebafe4fb72e336b7dedca89c07e334427eef8d)
### CI and tests
- ci: update screenshot compare from v9 to automatically create missing reference images [`fd21ed0`](https://github.com/lvgl/lvgl/commit/fd21ed0eb82bacb1e482180ab0aaed6a667f000d)
- ci(dropdown): fix test [`5fc488a`](https://github.com/lvgl/lvgl/commit/5fc488a088639dbfb5eb44f65b05e13b6ba881bf)
### Others
- chore(cmsis-pack): create cmsis-pack for v8.3.10 [`4572`](https://github.com/lvgl/lvgl/pull/4572)
- Update screen object opacity function documentation [`4505`](https://github.com/lvgl/lvgl/pull/4505)
- demo(sress): fix issues when the stress test is opened/clsoed multiple times [`1c5df6c`](https://github.com/lvgl/lvgl/commit/1c5df6c665b0d5f6f346d45b13109ff1f6ea78a6)
- chore: code formatting [`eb87767`](https://github.com/lvgl/lvgl/commit/eb87767cc65fec93f9cc4f87a1f8fb5b32f7e41d)
## [v8.3.9](https://github.com/lvgl/lvgl/compare/v8.3.9...v8.3.8) 6 August 2023
### Fixes
- fix(decoder): fix LV_IMG_CF_ALPHA_8BIT bin file decoder [`4406`](https://github.com/lvgl/lvgl/pull/4406)
- fix(config): fix typo in LV_USE_PERF_MONITOR and LV_USE_MEM_MONITOR [`4403`](https://github.com/lvgl/lvgl/pull/4403)
- fix(attr): refactor LV_ATTRIBUTE_* for function attributes [`4404`](https://github.com/lvgl/lvgl/pull/4404)
- fix(font): fix optimizer issue in lv_font_fmt_txt.c [`4385`](https://github.com/lvgl/lvgl/pull/4385)
- fix(btnmatrix): Hide button matrix when all buttons hidden [`65f1c93`](https://github.com/lvgl/lvgl/commit/65f1c9305e1b13356010524da4764fe20fe93030)
- fix(obj) prevent hidden objects keeping focus [`375b3b5`](https://github.com/lvgl/lvgl/commit/375b3b5d3ef2ea8c52f971a1bf20998be7940d5e)
- fix(btnmatrix): Fix typo in previous commit! [`29ed7c5`](https://github.com/lvgl/lvgl/commit/29ed7c5717f6cfbca5ce888bf4497221525aae85)
- fix(tabview): fix warning [`223dc1c`](https://github.com/lvgl/lvgl/commit/223dc1cf9d1cad0f40caf244eb435af0871f4153)
- fix(indev): fix warnings when loggin coordinates is enabled [`645006e`](https://github.com/lvgl/lvgl/commit/645006e35195cab3354f34a1a8cbc8c5ed0fdfad)
- fix: use const lv_img_dsc_t * dsc function parameter in lv_img_buf.h/ [`4f102d7`](https://github.com/lvgl/lvgl/commit/4f102d7b6b2e9f9fa68ab7b976d93762107549a4)
- fix(chart): fix lv_chart_get_point_pos_by_id [`f9ffcc9`](https://github.com/lvgl/lvgl/commit/f9ffcc9d8e11beb369dcbab0945ca85eab8f77b2)
- fix(imgbtn): support LV_OBJ_FLAG_CHECKABLE [`385d999`](https://github.com/lvgl/lvgl/commit/385d999a4a8164fcde6ae05f6a5daa5d5c209dd3)
### Docs
- docs(disp): metined that rotation rotates the touch coordinates too [`810852b`](https://github.com/lvgl/lvgl/commit/810852b41be5df66fd7b80f8af69f8b579d142ea)
### Others
- demos: add lv_demo_..._close() functions for each demo [`91038a9`](https://github.com/lvgl/lvgl/commit/91038a99e82a2522f693c7cdc77e9e7a672ee9ed)
## [v8.3.8](https://github.com/lvgl/lvgl/compare/v8.3.8...v8.3.7) 5 July 2023
### New Features
- feat(rt-thread): make the rt-thread env recursively glob the UI files [`8b83fe7`](https://github.com/lvgl/lvgl/commit/8b83fe7ea53a597cdbae8204d0aa9be8ad3d2b89)
### Performance
- perf(pxp, vglite): improve performance and add more features [`4222`](https://github.com/lvgl/lvgl/pull/4222)
### Fixes
- fix(stm32): static function prototypes moved from .h to .c [`4276`](https://github.com/lvgl/lvgl/pull/4276)
- fix(png): fix decode image size and some warnings [`4248`](https://github.com/lvgl/lvgl/pull/4248)
- fix(bidi): add more Hebrew checks to RTL characters set (#4171) [`4239`](https://github.com/lvgl/lvgl/pull/4239)
- fix(img): fix getting the image type on big endian systems [`4215`](https://github.com/lvgl/lvgl/pull/4215)
- fix(sdl): destroy texture after use if not stored in cache [`4173`](https://github.com/lvgl/lvgl/pull/4173)
- fix:(BtnMatrix) Backport https://github.com/lvgl/lvgl/pull/4185 [`cb602ea`](https://github.com/lvgl/lvgl/commit/cb602ea7785de21a187ef5ee5f7de4e3aa3f7e0e)
- fix(arduino): fix messed up variable types [`e3659c4`](https://github.com/lvgl/lvgl/commit/e3659c46b128b2b715b196c3ccfb94b3de4c89f8)
- fix:(BtnMatrix) Backport https://github.com/lvgl/lvgl/pull/4185 [`07bce74`](https://github.com/lvgl/lvgl/commit/07bce7466d471a15ba241a9db3239f7a116b0b46)
- fix(chart): fix division by zero if there are no ticks [`67b3011`](https://github.com/lvgl/lvgl/commit/67b3011f835b08c77ff60ae2d1e6592a710ca2b1)
- fix(msgbox): fix typo [`6a89bd2`](https://github.com/lvgl/lvgl/commit/6a89bd2d7409ac4d49ad32da73ba50a84f7c8990)
- fix(tabview): remove the animation if the tab is selected by clicking the button on the header [`3de61c7`](https://github.com/lvgl/lvgl/commit/3de61c76af0aed1665e9d61e47b4dd50b9e8bdf1)
- fix(btnmatrix): fix array out of bounds addressing with groups and no buttons [`edd5ad2`](https://github.com/lvgl/lvgl/commit/edd5ad28ad74d1025db0b442cfa390d8c01ae006)
- fix(btnmatrix): fix using &gt; 7 as button width [`75e6ef4`](https://github.com/lvgl/lvgl/commit/75e6ef4e1d66a85d68160b97ef931b0717e77212)
- fix(draw): typo with LV_COLOR_DEPTH 8 [`45b13c3`](https://github.com/lvgl/lvgl/commit/45b13c378f6fc1728ddf1547c25daa61d62c9f76)
- fix(disp): fix memory leak lv_scr_load_anim with auto_del and time=0 [`1caafc5`](https://github.com/lvgl/lvgl/commit/1caafc55dde46e1b7e3d17d8c5349fbf7cccba9f)
- fix(msgbox): add missing lv_obj_class_init_obj [`6843c19`](https://github.com/lvgl/lvgl/commit/6843c191b792f66829477827279adbbc763541c1)
- fix(flex): register LV_STYLE_FLEX_GROW [`5ba90a5`](https://github.com/lvgl/lvgl/commit/5ba90a5c41f584a8eb3a4fc8e2f466729652ddb3)
### Examples
- example(tabview): fix tabview disable scrollig example [`9491c3f`](https://github.com/lvgl/lvgl/commit/9491c3ff6d2f8e56b13d8fb493d4b3ee98ef1a4b)
### Docs
- docs: mention incompatibility between software rotation and `direct_mode` or `full_refresh` [`4308`](https://github.com/lvgl/lvgl/pull/4308)
- docs(faq): don't say 24 bit is support as LVGL can't render in RGB888 directly [`227ac02`](https://github.com/lvgl/lvgl/commit/227ac023419eeb253892b1c36113059f12b1f9f2)
### CI and tests
### Others
- chore(cmsis-pack): update cmsis-pack for v8.3.8 [`4340`](https://github.com/lvgl/lvgl/pull/4340)
- add(docs): add renesas-ra6m3 get-started document [`4278`](https://github.com/lvgl/lvgl/pull/4278)
- add(gpu): add renesas-ra6m3 gpu adaptation [`4270`](https://github.com/lvgl/lvgl/pull/4270)
- Revert "fix:(BtnMatrix) Backport https://github.com/lvgl/lvgl/pull/4185" [`1713cd3`](https://github.com/lvgl/lvgl/commit/1713cd3fd8f93aa575fbcf0e34b8626b6ee69ded)
## [v8.3.7](https://github.com/lvgl/lvgl/compare/v8.3.7...v8.3.6) 3 May 2023
### New Features
- feat(btnmatrix): review ctrl map and allow width values to be max 15 [`a150b15`](https://github.com/lvgl/lvgl/commit/a150b15e45a922eb5497fe5a31a480e1cd689246)
### Fixes
- fix (spinbox): doubling characters entered from the keyboard [`4190`](https://github.com/lvgl/lvgl/pull/4190)
- fix(arm-2d): fix transform-chrome-keying issue [`4178`](https://github.com/lvgl/lvgl/pull/4178)
- fix(menu): prevent setting the current page again [`4136`](https://github.com/lvgl/lvgl/pull/4136)
- fix(esp): fix ESP-IDF pedantic builds (backport v8.3) [`4135`](https://github.com/lvgl/lvgl/pull/4135)
- fix: color mixing with LV_COLOR_SWAP == 1 [`4101`](https://github.com/lvgl/lvgl/pull/4101)
- fix(indev): fix integer overflow in recursive zoom calculation [`a0795b4`](https://github.com/lvgl/lvgl/commit/a0795b49e82102ad68a27c86c36c37fffbe66d3c)
- fix(style): fix trasition on bg_grad color [`48d7878`](https://github.com/lvgl/lvgl/commit/48d7878bac3f607322957ed6f710d6615d5e72e0)
## [v8.3.6](https://github.com/lvgl/lvgl/compare/v8.3.6...v8.3.5) 3 April 2023
### New Features
- feat(msg): add lv_msg_unsubcribe_obj [`6af0179`](https://github.com/lvgl/lvgl/commit/6af01798d82f90f0c2ba6a9da39c4f10fb427df7)
### Performance
### Fixes
- fix(group): fix default_group becomes wild pointer when deleted [`4076`](https://github.com/lvgl/lvgl/pull/4076)
- fix(fs_posix): allow creating new file and set permission. [`3976`](https://github.com/lvgl/lvgl/pull/3976)
- fix(img): support negative angles [`3846`](https://github.com/lvgl/lvgl/pull/3846)
- fix(gif): synchronize with master [`4003`](https://github.com/lvgl/lvgl/pull/4003)
- fix(gpu): fix STM GPU drivers for some variants [`4004`](https://github.com/lvgl/lvgl/pull/4004)
- fix(img): possible divide by 0 exception (lvgl#3988) [`3990`](https://github.com/lvgl/lvgl/pull/3990)
- fix(arc): fix knob area invalidation [`d0e19eb`](https://github.com/lvgl/lvgl/commit/d0e19eb2d38ba8a500399b0496d7a8363be4003e)
- fix(slider): consider animations on pressing [`0b7777f`](https://github.com/lvgl/lvgl/commit/0b7777f27a7932efe3d594be426e1beb59d80ae3)
- fix(bar): delete running animations when a new value is set without animation [`aa31380`](https://github.com/lvgl/lvgl/commit/aa313806d0ebde475fc2bc360a15172cc1b658a7)
- docs: use a fixed commit of lv_web_emscripten [`501230e`](https://github.com/lvgl/lvgl/commit/501230e0fc95936199b3187d350873c3bb4a94e4)
### Examples
### Docs
- docs(arduino): add note to not use lv_examles library [`2f294aa`](https://github.com/lvgl/lvgl/commit/2f294aa76c8fece98a4fa72304bc6f267ed2a228)
- docs: use a fixed commit of lv_web_emscripten [`501230e`](https://github.com/lvgl/lvgl/commit/501230e0fc95936199b3187d350873c3bb4a94e4)
### CI and tests
### Others
- chore(cmsis-pack): update cmsis-pack for v8.3.6 [`4108`](https://github.com/lvgl/lvgl/pull/4108)
- chore: update the version numbers to v8.3.5-dev [`77670fb`](https://github.com/lvgl/lvgl/commit/77670fb1a55e0f2012ff7a057e535830e7253e22)
- Update build_html_examples.sh [`399069b`](https://github.com/lvgl/lvgl/commit/399069b4a2423c11823581668fe71ce9a7c88e7d)
## [v8.3.5](https://github.com/lvgl/lvgl/compare/v8.3.4...v8.3.5) 7 February 2023
### Performance
- perf(gpu): improve NXP's PXP and VGLite accelerators [`3952`](https://github.com/lvgl/lvgl/pull/3952)
- perf(dam2d): rework stm32 dma2d [`3904`](https://github.com/lvgl/lvgl/pull/3904)
### Fixes
- fix(monkey): remove executable permissions from source files [`3971`](https://github.com/lvgl/lvgl/pull/3971)
- fix(ci): set Ubuntu version for MicroPython test [`3865`](https://github.com/lvgl/lvgl/pull/3865)
- fix(Kconfig): fix wrong type of LV_FS_STDIO_CACHE_SIZE (v8.3) [`3906`](https://github.com/lvgl/lvgl/pull/3906)
- docs(indev): fix the name of long_press_repeat_time (was long_press_rep_time) [`34c545e`](https://github.com/lvgl/lvgl/commit/34c545ef19dc97c8952a412e533a4cd3924b9fbc)
- fix(roller): consider the recolor setting of the label [`39f4247`](https://github.com/lvgl/lvgl/commit/39f424767fa57376c4cb08cf22951fd56d854fd6)
### Examples
### Docs
- docs(indev): fix the name of long_press_repeat_time (was long_press_rep_time) [`34c545e`](https://github.com/lvgl/lvgl/commit/34c545ef19dc97c8952a412e533a4cd3924b9fbc)
### CI and tests
- ci(esp): fix push to the component registry on tag [`e529230`](https://github.com/lvgl/lvgl/commit/e529230f4bb97b4506c430aac96d5ddaef685dc4)
### Others
- chore(cmsis-pack): update cmsis-pack for v8.3.5 [`3972`](https://github.com/lvgl/lvgl/pull/3972)
- chore: add an option to "LV_TICK_CUSTOM" [`3879`](https://github.com/lvgl/lvgl/pull/3879)
- bump version numbers to v8.3.5-dev [`47c8f8f`](https://github.com/lvgl/lvgl/commit/47c8f8f9822f4c0c0ffbe2f12b380bddefcec475)
- Update layer.md [`9faca8a`](https://github.com/lvgl/lvgl/commit/9faca8a8d4125e21dedbf6e46aa1586a6b57e5b8)
## [v8.3.4](https://github.com/lvgl/lvgl/compare/v8.3.4...v8.3.3) 15 December 2022
### New Features
- feat(keyboard): ported arabic keyboard from release 7.10.0 [`3728`](https://github.com/lvgl/lvgl/pull/3728)
- feat(table): scroll to the selected cell with key navigation [`39d03a8`](https://github.com/lvgl/lvgl/commit/39d03a80f45847a1977cfe9cc6a509b1613d0aca)
### Fixes
- fix(rt-thread): sync rt-thread v5.0.0 rt_align [`3864`](https://github.com/lvgl/lvgl/pull/3864)
- fix(draw): SDL2 gradient support #3848 [`3856`](https://github.com/lvgl/lvgl/pull/3856)
- fix(esp.cmake): add demos and examples [`3784`](https://github.com/lvgl/lvgl/pull/3784)
- fix(indev): fix scrolling on transformed obejcts [`84cf05d`](https://github.com/lvgl/lvgl/commit/84cf05d8b23b31e000db757a278545e58fcbcbe8)
- fix(style): add the missing support for pct pivot in tranasform style properties [`c8e584f`](https://github.com/lvgl/lvgl/commit/c8e584f879a1e1427e7a8f5ff496af39f17df41d)
- fix(flex): be sure obj-&gt;w_layout and h_layout can't be set at the same time [`c4c4007`](https://github.com/lvgl/lvgl/commit/c4c400716e80a279e7b3d43b8992915fe94441eb)
- fix(chart): fix very dense bar charts [`bb2c2ac`](https://github.com/lvgl/lvgl/commit/bb2c2ac34ac943978513c7ed51885078979b1c10)
- fix(draw): handle LV_COLOR_DEPTH == 1 too in lv_draw_sw_transform [`bd11ad8`](https://github.com/lvgl/lvgl/commit/bd11ad8542eac9ff51420e5afb80f7e6fcf36a5c)
- fix(example): fix warnings [`1e3ca25`](https://github.com/lvgl/lvgl/commit/1e3ca25fed13bbf85c32a60d4b7041cf8bd525ab)
- fix(benchmark): fix warnings [`1ed026c`](https://github.com/lvgl/lvgl/commit/1ed026ca7307957568fe419f1ff39a15b2535b3e)
- fix(draw): fix text color with sub pixel rendering and BGR order [`e050f5c`](https://github.com/lvgl/lvgl/commit/e050f5ca156f79d752894f38f0a437c946205cb4)
- fix(meter): fix setting part_draw_dsc.id in needle img drawing [`716e5e2`](https://github.com/lvgl/lvgl/commit/716e5e2c8bd2a22e7d56e8d7ca33054a11a1f4ed)
- fix(gridnav): fix stucking in pressed state with encoder [`ad56dfa`](https://github.com/lvgl/lvgl/commit/ad56dfaf7046a9bb8c05e877a8c8852cd14a59af)
- fix(darw): add back the disappeared antialising=0 support [`2c17b28`](https://github.com/lvgl/lvgl/commit/2c17b28ac476c95a4153ab6cabb77b1c7208bb74)
- fix(msg): fix typos in API by adding wrappers [`41fa416`](https://github.com/lvgl/lvgl/commit/41fa41613455260ccdeb87ecb890ce026ff0a435)
- fix(draw): fix transformation accuracy [`e06f03d`](https://github.com/lvgl/lvgl/commit/e06f03db72f98439078118518158f52439dd7bf8)
- fix(style): remove the reduntant define of LV_GRADIENT_MAX_STOPS [`903e94b`](https://github.com/lvgl/lvgl/commit/903e94b716ca1b32cdb51de11df679953699e53b)
- demo(benchmark): fix lv_label_set_text_fmt format strings [`ae38258`](https://github.com/lvgl/lvgl/commit/ae3825871e31cd42cad2f310bdfc605150670511)
- demo(benchmark): fix warning [`1173dcb`](https://github.com/lvgl/lvgl/commit/1173dcba96621e20c9a7240c8572bd6573bce6a0)
## [v8.3.3](https://github.com/lvgl/lvgl/compare/v8.3.2...v8.3.3) 06 October 2022
v8.3.3 is the same as v8.3.2. It was released only because the version number was set incorrectly in lvgl.h.
## [v8.3.2](https://github.com/lvgl/lvgl/compare/v8.3.1...v8.3.2) 27 September 2022
### Fixes
- fix(fragment): fixed child fragment event dispatch [`3683`](https://github.com/lvgl/lvgl/pull/3683)
- fix(sdl): clear streaming/target texture with FillRect [`3682`](https://github.com/lvgl/lvgl/pull/3682)
- fix(sdl): transformation with alpha (#3576) [`3678`](https://github.com/lvgl/lvgl/pull/3678)
- fix(draw_sw): fix image cache to access the freed stack space [`3584`](https://github.com/lvgl/lvgl/pull/3584)
- fix(style): use compile time prop_cnt for const styles [`3609`](https://github.com/lvgl/lvgl/pull/3609)
- fix(demo): can not found lvgl.h file [`3477`](https://github.com/lvgl/lvgl/pull/3477)
- fix(ci) checkout lv_micropython release/v8 branch [`3524`](https://github.com/lvgl/lvgl/pull/3524)
- fix(canvas): fix clipéping on transformation [`b884aba`](https://github.com/lvgl/lvgl/commit/b884abae26f3824b27783a85d18ed51e550347c1)
- fix(draw): allow drawing outline with LV_DRAW_COMPLEX == 0 too [`ece3495`](https://github.com/lvgl/lvgl/commit/ece34950040e218fc73605a4e88f1060c2a274f8)
- fix(colorwheel): fix updating color when using lv_colorwheel_set_hsv [`d59bba1`](https://github.com/lvgl/lvgl/commit/d59bba12db115afb4b6aa53eed2625221dfff2fd)
- fix(slider): find the nearest value on click instead of floor [`dfd14fa`](https://github.com/lvgl/lvgl/commit/dfd14fa778aef25d0db61748a58aa9989ce5e2c8)
- fix(draw): fix border drawing with thick borders [`d5b2a9b`](https://github.com/lvgl/lvgl/commit/d5b2a9b2562cbfa327bf0ec03c11d28576037a14)
- fix(refr): fix true double double buffering logic with transparent screens [`8b605cc`](https://github.com/lvgl/lvgl/commit/8b605cc48224d0497cdd936fa77229e0c3d606d2)
- fix(group): be sure obj is removed from its current group in lv_group_add_obj [`5156ee0`](https://github.com/lvgl/lvgl/commit/5156ee058d5de674a00ffd84d15d460de7f0e53b)
- fix(style): add missing invalidation in lv_obj_remove_local_style_prop [`a0515ba`](https://github.com/lvgl/lvgl/commit/a0515ba30dd74b8b22a6709d334eb03782ee1a4d)
### Docs
- docs(draw) remove reference to old lv_fs_add_drv function [`3564`](https://github.com/lvgl/lvgl/pull/3564)
- docs(disp): LV_COLOR_SCREEN_TRANSP remove dependency on LV_COLOR_DEPTH_32 as transparency is supported across all color depths [`3556`](https://github.com/lvgl/lvgl/pull/3556)
### CI and tests
- ci: protect test.c with #if LV_BUILD_TEST [`be485d7`](https://github.com/lvgl/lvgl/commit/be485d7605136d2a5d6a633c7cb5b7c525cae7ee)
### Others
- chore(rt-thread) backport fixes from v9 [`3604`](https://github.com/lvgl/lvgl/pull/3604)
- chore: fix warnings [`7640950`](https://github.com/lvgl/lvgl/commit/76409502163ffe67cfbab9c7f24f2226cc8a5941)
- remove accidentally added code [`5022476`](https://github.com/lvgl/lvgl/commit/5022476edc8676f2a6ef7b919d3578159edeef7c)
## [v8.3.1](https://github.com/lvgl/lvgl/compare/v8.3.0...v8.3.1) 25 July 2022
### Fixes
- fix(led): add bg_color draw descriptors back to led draw event to support LV_DRAW_COMPLEX 0 [`3515`](https://github.com/lvgl/lvgl/pull/3515)
- fix(slider): fix knob drawing in symmetrical mode [`2967172`](https://github.com/lvgl/lvgl/commit/2967172bee806e77da6ee2307c79e867af3f76bc)
- fix(refr): fix lv_refr_get_top_obj [`9750c97`](https://github.com/lvgl/lvgl/commit/9750c97aff4dc3de80559b150852b829f006d6bf)
- fix(arc): fix arc knob invalidation in SYMMETRICAL mode [`a283273`](https://github.com/lvgl/lvgl/commit/a283273bd27599dae6b044a941b6591ad45e059b)
### Examples
- example(freetype): Update the Micropython example to use the Lato font [`71913d3`](https://github.com/lvgl/lvgl/commit/71913d300dde25d1b87d1b44fa1fa47854defd59)
- example(freetype): replace the arial font with lato to avoid licensing issues [`8544cc3`](https://github.com/lvgl/lvgl/commit/8544cc38062d9c817013bbe6aedbb47112e580ad)
### Docs
- docs(readme): fix LVGL version typo (8.3.0) [`3462`](https://github.com/lvgl/lvgl/pull/3462)
- docs(tasmota): support LVGL 8.3.0 (#3511) [`62662f6`](https://github.com/lvgl/lvgl/commit/62662f68e9cf90adcb96d42030eca5fa135b96a5)
## [v8.3.0](https://github.com/lvgl/lvgl/compare/v8.2.0...v8.3.0) 6 July 2022
### Overview

View File

@@ -12,7 +12,46 @@ document.addEventListener('DOMContentLoaded', (event) => {
cppListing.classList.toggle("unexpanded");
cppListing.classList.toggle("expanded");
});
dt.insertBefore(button, dt.firstChild);
});
})
fetch('https://lvgl.io/home-banner.txt') // Replace with your URL
.then(response => {
// Check if the request was successful
if (!response.ok) {
throw new Error(`HTTP error! Status: ${response.status}`);
}
// Read the response as text
return response.text();
})
.then(data => {
const section = document.querySelector('.wy-nav-content-wrap');
//Add a div
const newDiv = document.createElement('div');
newDiv.style="background-image: linear-gradient(45deg, black, #5e5e5e); color: white; border-bottom: 4px solid #e10010; padding-inline:3em"
section.insertBefore(newDiv, section.firstChild);
//Add a p to the div
const newP = document.createElement('p');
newP.style="padding-block:12px; margin-block:0px;align-content: center;align-items: center;"
newP.innerHTML = data
newDiv.insertBefore(newP, newDiv.firstChild);
const children = newDiv.querySelectorAll('*');
// Iterate over each child
children.forEach(child => {
// Check if the child has an id
if (child.id) {
// Prepend 'docs-' to the id
child.id = 'docs-' + child.id;
}
})
}) .catch(error => {
console.error('Fetch error: ' + error.message);
});
})

View File

@@ -52,9 +52,14 @@ In the INO file you can see how to register a display and a touchpad for LVGL an
Note that, there is no dedicated INO file for every example. Instead, you can load an example by calling an `lv_example_...` function. For example `lv_example_btn_1()`.
**IMPORTANT**
**IMPORTANT NOTE 1**
Due to some the limitations of Arduino's build system you need to copy `lvgl/examples` to `lvgl/src/examples`. Similarly for the demos `lvgl/demos` to `lvgl/src/demos`.
**IMPORTANT NOTE 2**
Note that the `lv_examples` library is for LVGL v7 and you shouldn't install it for this version (since LVGL v8)
as the examples and demos are now part of the main LVGL library.
## Debugging and logging
LVGL can display debug information in case of trouble.

View File

@@ -9,6 +9,7 @@
nxp
stm32
espressif
renesas
arduino
tasmota-berry
cmake

View File

@@ -1,6 +1,6 @@
# NXP
NXP has integrated LVGL into the MCUXpresso SDK packages for several of their general purpose and crossover
microcontrollers, allowing easy evaluation and migration into your product design.
NXP has integrated LVGL into the MCUXpresso SDK packages for general purpose and crossover microcontrollers, allowing
easy evaluation and migration into your product design.
[Download an SDK for a supported board](https://www.nxp.com/design/software/embedded-software/littlevgl-open-source-graphics-library:LITTLEVGL-OPEN-SOURCE-GRAPHICS-LIBRARY?&tid=vanLITTLEVGL-OPEN-SOURCE-GRAPHICS-LIBRARY)
today and get started with your next GUI application.
@@ -10,42 +10,40 @@ with PXP/VGLite support if the modules are present), no additional integration w
## HW acceleration for NXP iMX RT platforms
Depending on the RT platform used, the acceleration can be done by NXP PXP (PiXel Pipeline) and/or the Verisilicon GPU
through an API named VGLite. There is a single NXP draw context that covers both GPUs allowing to have enabled either
one or even both at the same time. While enableing both 2D accelerators, the VGLite can be used to accelerate widget
drawing while the PXP accelerated blit and fill operations.
Supported draw callbacks are available in "src/draw/nxp/lv_gpu_nxp.c":
```c
nxp_draw_ctx->base_draw.draw_arc = lv_draw_nxp_arc;
nxp_draw_ctx->base_draw.draw_rect = lv_draw_nxp_rect;
nxp_draw_ctx->base_draw.draw_img_decoded = lv_draw_nxp_img_decoded;
nxp_draw_ctx->blend = lv_draw_nxp_blend;
```
If enabled both GPUs, the PXP is the preffered one to be used for drawing operation. A fallback mechanism is
implemented so that if the feature is not supported by PXP (or if PXP fails), the VGLite will take over to handle the
task. At the end, the CPU will assure that every widget drawing is fully covered (if not already done by GPU).
through an API named VGLite. Each accelerator has its own context that allows them to be used individually as well
simultaneously (in LVGL multithreading mode).
### PXP accelerator
Several drawing features in LVGL can be offloaded to the PXP engine. The VGLite (if supported) and CPU are available for
other operations while the PXP is running. An RTOS is required to block the LVGL drawing thread and switch to another
task or suspend the CPU for power savings.
Several drawing features in LVGL can be offloaded to the PXP engine. The CPU is available for other operations while the
PXP is running. RTOS is required to block the LVGL drawing thread and switch to another task or suspend the CPU for
power savings.
Supported draw callbacks are available in "src/draw/nxp/pxp/lv_draw_pxp.c":
```c
pxp_draw_ctx->base_draw.draw_img_decoded = lv_draw_pxp_img_decoded;
pxp_draw_ctx->blend = lv_draw_pxp_blend;
pxp_draw_ctx->base_draw.wait_for_finish = lv_draw_pxp_wait_for_finish;
pxp_draw_ctx->base_draw.buffer_copy = lv_draw_pxp_buffer_copy;
```
#### Features supported:
All operations can be used in conjunction with optional transparency.
- RGB565 and ARGB8888 color formats
- Area fill + optional transparency
- BLIT (BLock Image Transfer) + optional transparency
- Color keying + optional transparency
- Recoloring (color tint) + optional transparency
- Image Rotation (90, 180, 270 degree) + optional transparency
- Recoloring (color tint) + Image Rotation (90, 180, 270 degree) + optional transparency
- Area fill with color
- BLIT (BLock Image Transfer)
- Screen Rotation (90, 180, 270 degree)
- Color keying
- Recoloring (color tint)
- Image Rotation (90, 180, 270 degree)
- Buffer copy
- RTOS integration layer
- Default FreeRTOS and bare metal code provided
- Combination of recolor and/or rotation + color key/alpha blend/transparency is supported but PXP needs two steps.
First step is to recolor/rotate the image to a temporarly buffer (please check LV_MEM_SIZE value for allocation limit)
and another step is required to handle color keying, alpha chanel or to apply transparency.
- Combination of recolor and/or rotation + color key/alpha blend/transparency is supported.
That is achieved by PXP in two steps:
- First step is to recolor/rotate the image to a temporary buffer (statically allocated)
- Second step is required to handle color keying, alpha channel or to apply transparency
#### Known limitations:
- Rotation is not supported for images unaligned to blocks of 16x16 pixels.
@@ -78,51 +76,71 @@ and the final output image can look shifted.
#### Project setup:
- Add PXP related files to project:
- src/draw/nxp/pxp/lv_gpu_nxp_pxp.c, src/draw/nxp/pxp/lv_gpu_nxp_pxp.h: init, uninit, run/wait PXP device, log/trace
- src/draw/nxp/pxp/lv_draw_pxp_blend.c, src/draw/nxp/pxp/lv_draw_pxp_blend.h: fill and blit (w/o transformation)
- src/draw/nxp/pxp/lv_gpu_nxp_osa.c, src/draw/nxp/pxp/lv_gpu_osa.h: default implementation of OS-specific functions
(bare metal and FreeRTOS only)
- src/draw/nxp/pxp/lv_draw_pxp.c[.h]: draw context callbacks
- src/draw/nxp/pxp/lv_draw_pxp_blend.c[.h]: fill and blit (with optional transformation)
- src/draw/nxp/pxp/lv_gpu_nxp_pxp.c[.h]: init, uninit, run/wait PXP device
- src/draw/nxp/pxp/lv_gpu_nxp_pxp_osa.c[.h]: OS abstraction (FreeRTOS or bare metal)
- optional, required only if `LV_USE_GPU_NXP_PXP_AUTO_INIT` is set to 1
- PXP related code depends on two drivers provided by MCU SDK. These drivers need to be added to project:
- fsl_pxp.c, fsl_pxp.h: PXP driver
- fsl_cache.c, fsl_cache.h: CPU cache handling functions
- fsl_pxp.c[.h]: PXP driver
- fsl_cache.c[.h]: CPU cache handling functions
#### Logging:
- By default, LV_GPU_NXP_PXP_LOG_ERRORS is enabled so that any PXP error will be seen on LVGL output
- For tracing logs about the PXP limitations or size thresholds, the user can enable LV_GPU_NXP_PXP_LOG_TRACES
- By default, `LV_GPU_NXP_PXP_LOG_ERRORS` is enabled so that any PXP error will be seen on SDK debug console
- By default, `LV_GPU_NXP_PXP_LOG_TRACES` is disabled. Enable it for tracing logs (like PXP limitations)
#### Advanced configuration:
- Implementation depends on multiple OS-specific functions. The struct `lv_nxp_pxp_cfg_t` with callback pointers is
used as a parameter for the `lv_gpu_nxp_pxp_init()` function. Default implementation for FreeRTOS and baremetal is
provided in lv_gpu_nxp_osa.c
used as a parameter for the `lv_gpu_nxp_pxp_init()` function. Default implementation for FreeRTOS and bare metal is
provided in lv_gpu_nxp_pxp_osa.c
- `pxp_interrupt_init()`: Initialize PXP interrupt (HW setup, OS setup)
- `pxp_interrupt_deinit()`: Deinitialize PXP interrupt (HW setup, OS setup)
- `pxp_run()`: Start PXP job. Use OS-specific mechanism to block drawing thread. PXP must finish drawing before
leaving this function.
- There are configurable area thresholds which are used to decide whether the area will be processed by CPU or by PXP.
Areas smaller than a defined value will be processed by CPU and those bigger than the threshold will be processed by
PXP. These thresholds may be defined as preprocessor variables. Default values are defined in lv_draw_pxp_blend.h
- `LV_GPU_NXP_PXP_BLIT_SIZE_LIMIT`: size threshold for image BLIT, BLIT with color keying, BLIT with recolor and
BLIT with rotation (OPA >= LV_OPA_MAX)
- `LV_GPU_NXP_PXP_BLIT_OPA_SIZE_LIMIT`: size threshold for image BLIT, BLIT with color keying, BLIT with recolor
and BLIT with rotation and transparency (OPA < LV_OPA_MAX)
- `LV_GPU_NXP_PXP_FILL_SIZE_LIMIT`: size threshold for fill operation (OPA >= LV_OPA_MAX)
- `LV_GPU_NXP_PXP_FILL_OPA_SIZE_LIMIT`: size threshold for fill operation with transparency (OPA < LV_OPA_MAX)
- Area threshold (size limit) is configurable and used to decide whether the area will be processed by PXP or not.
Areas smaller than the defined value will be processed by CPU and those bigger than the threshold will be processed by
PXP. The threshold is defined as a macro in lv_draw_pxp.c
- `LV_GPU_NXP_PXP_SIZE_LIMIT`: size threshold for fill/blit (with optional transformation)
### VGLite accelerator
Extra drawing features in LVGL can be handled by the VGLite engine. The PXP (if supported) and CPU are available for
other operations while the VGLite is running. An RTOS is required to block the LVGL drawing thread and switch to another
task or suspend the CPU for power savings.
Extra drawing features in LVGL can be handled by the VGLite engine. The CPU is available for other operations while the
VGLite is running. An RTOS is required to block the LVGL drawing thread and switch to another task or suspend the CPU
for power savings.
Supported draw callbacks are available in "src/draw/nxp/vglite/lv_draw_vglite.c":
```c
vglite_draw_ctx->base_draw.init_buf = lv_draw_vglite_init_buf;
vglite_draw_ctx->base_draw.draw_line = lv_draw_vglite_line;
vglite_draw_ctx->base_draw.draw_arc = lv_draw_vglite_arc;
vglite_draw_ctx->base_draw.draw_rect = lv_draw_vglite_rect;
vglite_draw_ctx->base_draw.draw_img_decoded = lv_draw_vglite_img_decoded;
vglite_draw_ctx->blend = lv_draw_vglite_blend;
vglite_draw_ctx->base_draw.wait_for_finish = lv_draw_vglite_wait_for_finish;
vglite_draw_ctx->base_draw.buffer_copy = lv_draw_vglite_buffer_copy;
```
#### Features supported:
All operations can be used in conjunction with optional transparency.
- RGB565 and ARGB8888 color formats
- Area fill + optional transparency
- BLIT (BLock Image Transfer) + optional transparency
- Image Rotation (any degree with decimal) + optional transparency
- Image Scale + optional transparency
- Draw background rectangle with radius or gradient
- Draw arc
- RTOS integration layer
- Area fill with color
- BLIT (BLock Image Transfer)
- Image Rotation (any degree with decimal)
- Image Scale
- Draw rectangle background with optional radius or gradient
- Blit rectangle background image
- Draw rectangle border/outline with optional rounded corners
- Draw arc with optional rounded ending
- Draw line or dashed line with optional rounded ending
- Buffer copy
#### Known limitations:
- Source image alignment:
The byte alignment requirement for a pixel depends on the specific pixel format. Both buffer address and buffer stride
must be aligned. As general rule, the alignment is set to 16 pixels. This makes the buffer address alignment to be
32 bytes for RGB565 and 64 bytes for ARGB8888.
- For pixel engine (PE) destination, the alignment should be 64 bytes for all tiled (4x4) buffer layouts.
The pixel engine has no additional alignment requirement for linear buffer layouts (`VG_LITE_LINEAR`).
#### Basic configuration:
- Select NXP VGLite engine in lv_conf.h: Set `LV_USE_GPU_NXP_VG_LITE` to 1
@@ -130,8 +148,8 @@ task or suspend the CPU for power savings.
#### Basic initialization:
- Initialize VGLite before calling `lv_init()` by specifying the width/height of tessellation window. Value should be
a multiple of 16; minimum value is 16 pixels, maximum cannot be greater than frame width. If less than or equal to 0,
then no tessellation buffer is created, in which case the function is used for a blit init.
a multiple of 16; minimum value is 16 pixels, maximum cannot be greater than the frame width. If less than or equal
to 0, then no tessellation buffer is created, in which case VGLite is initialized only for blitting.
```c
#if LV_USE_GPU_NXP_VG_LITE
#include "vg_lite.h"
@@ -144,25 +162,21 @@ task or suspend the CPU for power savings.
#### Project setup:
- Add VGLite related files to project:
- src/draw/nxp/vglite/lv_gpu_nxp_vglite.c, src/draw/nxp/vglite/lv_gpu_nxp_vglite.h: buffer init, log/trace
- src/draw/nxp/vglite/lv_draw_vglite_blend.c, src/draw/nxp/vglite/lv_draw_vglite_blend.h: fill and blit
(w/o transformation)
- src/draw/nxp/vglite/lv_draw_vglite_rect.c, src/draw/nxp/vglite/lv_draw_vglite_rect.h: rectangle draw
- src/draw/nxp/vglite/lv_draw_vglite_arc.c, src/draw/nxp/vglite/lv_draw_vglite_arc.h: arc draw
- src/draw/nxp/vglite/lv_draw_vglite.c[.h]: draw context callbacks
- src/draw/nxp/vglite/lv_draw_vglite_blend.c[.h]: fill and blit (with optional transformation)
- src/draw/nxp/vglite/lv_draw_vglite_rect.c[.h]: draw rectangle
- src/draw/nxp/vglite/lv_draw_vglite_arc.c[.h]: draw arc
- src/draw/nxp/vglite/lv_draw_vglite_line.c[.h]: draw line
- src/draw/nxp/vglite/lv_vglite_buf.c[.h]: init/get vglite buffer
- src/draw/nxp/vglite/lv_vglite_utils.c[.h]: function helpers
#### Logging:
- By default, LV_GPU_NXP_VG_LITE_LOG_ERRORS is enabled so that any VGLite error will be seen on LVGL output
- For tracing logs about the VGLite limitations, size thresholds or stride alignment, the user can enable
LV_GPU_NXP_VG_LITE_LOG_TRACES
- By default, `LV_GPU_NXP_VG_LITE_LOG_ERRORS` is enabled so that any VGLite error will be seen on SDK debug console
- By default, `LV_GPU_NXP_VG_LITE_LOG_TRACES` is disabled. Enable it for tracing logs (like blit split workaround or
VGLite fallback to CPU due to any error on the driver)
#### Advanced configuration:
- There are configurable area thresholds which are used to decide whether the area will be processed by CPU or by
VGLite. Areas smaller than a defined value will be processed by CPU and those bigger than the threshold will be
processed by VGLite. These thresholds may be defined as preprocessor variables. Default values are defined in
lv_draw_vglite_blend.h
- `LV_GPU_NXP_VG_LITE_BLIT_SIZE_LIMIT`: size threshold for image BLIT, BLIT with scale and BLIT with rotation
(OPA >= LV_OPA_MAX)
- `LV_GPU_NXP_VG_LITE_BLIT_OPA_SIZE_LIMIT`: size threshold for image BLIT, BLIT with scale and BLIT with rotation
and transparency (OPA < LV_OPA_MAX)
- `LV_GPU_NXP_VG_LITE_FILL_SIZE_LIMIT`: size threshold for fill operation (OPA >= LV_OPA_MAX)
- `LV_GPU_NXP_VG_LITE_FILL_OPA_SIZE_LIMIT`: size threshold for fill operation with transparency (OPA < LV_OPA_MAX)
- Area threshold (size limit) is configurable and used to decide whether the area will be processed by VGLite or not.
Areas smaller than the defined value will be processed by CPU and those bigger than the threshold will be processed by
VGLite. The threshold is defined as a macro in lv_draw_vglite.c
- `LV_GPU_NXP_VG_LITE_SIZE_LIMIT`: size threshold for fill/blit (with optional transformation)

View File

@@ -15,7 +15,7 @@ The simulator is ported to various IDEs (Integrated Development Environments). C
- [Eclipse with SDL driver](https://github.com/lvgl/lv_sim_eclipse_sdl): Recommended on Linux and Mac
- [CodeBlocks](https://github.com/lvgl/lv_sim_codeblocks_win): Recommended on Windows
- [VisualStudio with SDL driver](https://github.com/lvgl/lv_sim_visual_studio_sdl): For Windows
- [VisualStudio](https://github.com/lvgl/lv_sim_visual_studio_sdl): For Windows
- [VSCode with SDL driver](https://github.com/lvgl/lv_sim_vscode_sdl): Recommended on Linux and Mac
- [PlatformIO with SDL driver](https://github.com/lvgl/lv_platformio): Recommended on Linux and Mac
- [MDK with FastModel](https://github.com/lvgl/lv_port_an547_cm55_sim): For Windows

View File

@@ -0,0 +1,129 @@
# Renesas
The [HMI-Board](https://bit.ly/3I9nfUo) development board SDK now comes with LVGL integration for quick evaluation. Simply download the [SDK](https://github.com/RT-Thread-Studio/sdk-bsp-ra6m3-hmi-board/tree/main/projects/hmi-board-lvgl) for the supported motherboard and youll be on your way to creating your next GUI application in no time. For more information, check out the [Software design description](https://github.com/RT-Thread-Studio/sdk-bsp-ra6m3-hmi-board/blob/main/projects/hmi-board-lvgl/README.md).
## Creating new project with LVGL
It is recommended to start your project by downloading the HMI-Board SDK example project. It comes fully equipped with LVGL and dave-2d support (if the modules are present), so you wont need to do any additional integration work.
## HW acceleration for Renesas RA6M3 platforms
For RA6M3 platforms, hardware acceleration can be achieved using the dave-2d GPU, depending on the platform used. Each accelerator has its own context, allowing them to be used individually or simultaneously in LVGLs multithreading mode.
### Dave-2d accelerator
LVGL can offload several drawing features to the dave-2d engine, freeing up the CPU for other operations while dave-2d runs. An RTOS is required to block the LVGL drawing thread and switch to another task or suspend the CPU for power savings. Supported draw callbacks can be found in “src/draw/renesas/lv_gpu_d2_ra6m3.c”.
LVGL can offload several drawing features to the dave-2d engine, freeing up the CPU for other operations while dave-2d runs. An RTOS is required to block the LVGL drawing thread and switch to another task or suspend the CPU for power savings. Supported draw callbacks can be found in “src/draw/renesas/lv_gpu_d2_ra6m3.c”.
```c
ra_2d_draw_ctx->blend = lv_draw_ra6m3_2d_blend;
ra_2d_draw_ctx->base_draw.draw_img_decoded = lv_port_gpu_img_decoded;
ra_2d_draw_ctx->base_draw.wait_for_finish = lv_port_gpu_wait;
ra_2d_draw_ctx->base_draw.draw_letter = lv_draw_gpu_letter;
```
### Features supported:
All operations can be used in conjunction with optional transparency.
- RGB565 and ARGB8888 color formats
- Area fill with color
- BLIT (BLock Image Transfer)
- Color conversion
- Rotate and scale
- Alpha blending
- Bilinear filtering
- RTOS integration layer
- Default RT-Thread code provided
- Subpixel exact placement
### Basic configuration:
- Select Renesas dave-2d engine in lv_conf.h: Set `LV_USE_GPU_RA6M3_G2D` to 1
- Set referenced header file in lv_conf.h: `#define LV_GPU_RA6M3_G2D_INCLUDE "hal_data.h"`
### RT-Thread Example:
```c
#define COLOR_BUFFER (LV_HOR_RES_MAX * LV_VER_RES_MAX)
static lv_disp_drv_t disp_drv;
/*A static or global variable to store the buffers*/
static lv_color_t buf_1[COLOR_BUFFER];
```
- After initializing your peripherals (such as SPI, GPIOs, and LCD) in the `lv_port_disp_init()` function, you can initialize LVGL using [`lv_init()`.](https://docs.lvgl.io/master/API/core/lv_obj.html#_CPPv47lv_initv) Next, register the frame buffers using `lv_disp_draw_buf_init()` and create a new display driver using `lv_disp_drv_init()`.
```c
/*Initialize `disp_buf` with the buffer(s). With only one buffer use NULL instead buf_2 */
lv_disp_draw_buf_init(&disp_buf, buf_1, RT_NULL, COLOR_BUFFER);
lv_disp_drv_init(&disp_drv); /*Basic initialization*/
/*Set the resolution of the display*/
disp_drv.hor_res = LV_HOR_RES_MAX;
disp_drv.ver_res = LV_VER_RES_MAX;
/*Set a display buffer*/
disp_drv.draw_buf = &disp_buf;
/*Used to copy the buffer's content to the display*/
disp_drv.flush_cb = disp_flush;
/* Initialize GPU module */
lv_port_gpu_hw_init();
/*Finally register the driver*/
lv_disp_drv_register(&disp_drv);
```
* To run LVGL, youll need to create a thread. You can find examples of how to do this using RT-Thread in the `env_support/rt-thread/lv_rt_thread_port.c` file.
```c
static void lvgl_thread_entry(void *parameter)
{
#if LV_USE_LOG
lv_log_register_print_cb(lv_rt_log);
#endif /* LV_USE_LOG */
lv_init();
lv_port_disp_init();
lv_port_indev_init();
lv_user_gui_init();
/* handle the tasks of LVGL */
while(1)
{
lv_task_handler();
rt_thread_mdelay(LV_DISP_DEF_REFR_PERIOD);
}
}
static int lvgl_thread_init(void)
{
rt_err_t err;
/* create lvgl thread */
err = rt_thread_init(&lvgl_thread, "LVGL", lvgl_thread_entry, RT_NULL,
&lvgl_thread_stack[0], sizeof(lvgl_thread_stack), PKG_LVGL_THREAD_PRIO, 10);
if(err != RT_EOK)
{
LOG_E("Failed to create LVGL thread");
return -1;
}
rt_thread_startup(&lvgl_thread);
return 0;
}
INIT_ENV_EXPORT(lvgl_thread_init);
```
- The last step is to create a function to output the frame buffer to your LCD. The specifics of this function will depend on the features of your MCU. Heres an example for a typical MCU interface: `my_flush_cb`.
```c
static void my_flush_cb(lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p)
{
#ifdef PKG_USING_ILI9341
lcd_fill_array_spi(area->x1, area->y1, area->x2, area->y2, color_p);
#elif LV_USE_GPU_RA6M3_G2D
lv_port_gpu_blit(area->x1, area->y1, color_p, area);
#else
......
#endif
lv_disp_flush_ready(disp_drv);
}
```

View File

@@ -31,7 +31,7 @@ In 2021, Tasmota added full support of LVGL for ESP32 based devices. It also int
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 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.3.0, LodePNG v20201017, Freetype 2.10.4
### Tasmota + Berry + LVGL could be used for:

View File

@@ -132,7 +132,7 @@ LVGL needs just one simple driver function to copy an array of pixels into a giv
If you can do this with your display then you can use it with LVGL.
Some examples of the supported display types:
- TFTs with 16 or 24 bit color depth
- TFTs with 16 or 32 bit color depth
- Monitors with an HDMI port
- Small monochrome displays
- Gray-scale displays

View File

@@ -2,14 +2,38 @@
# File System Interfaces
LVGL has a [File system](https://docs.lvgl.io/master/overview/file-system.html) module to provide an abstraction layer for various file system drivers.
You still need to provide the drivers and libraries, this extension provides only the bridge between FATFS, LittleFS, STDIO, POSIX, WIN32 and LVGL.
LVG has built in support for:
- [FATFS](http://elm-chan.org/fsw/ff/00index_e.html)
- STDIO (Linux and Windows using C standard function .e.g fopen, fread)
- POSIX (Linux and Windows using POSIX function .e.g open, read)
- WIN32 (Windows using Win32 API function .e.g CreateFileA, ReadFile)
## Built in wrappers
You still need to provide the drivers and libraries, this extension provides only the bridge between FATFS, STDIO, POSIX, WIN32 and LVGL.
### FATFS
Bridge for [FatFS](http://elm-chan.org/fsw/ff/00index_e.html). FatFS itself is not part of LVGL, but can be added and initialized externally.
### LittleFS
Though `lv_fs_littlefs` uses [LittleFS]((https://github.com/littlefs-project/littlefs)) API, the LittleFS library needs other external libraries that handle the mounting of partitions and low-level accesses, according to the given architecture. The functions for the latter are given to the lfs_t structure as pointers by an external low-level library.
There's a convenience function called `lv_fs_littlefs_set_driver(LV_FS_LITTLEFS_LETTER, my_lfs)`, specific to `lv_fs_littlefs`, to attach a `lfs_t` object's pointer to a registered driver-letter. See its comments for more info.
[esp_littlefs](https://components.espressif.com/components/joltwallet/littlefs) is a wrapper for LittleFS to be used in Espressif ESP-devices. It handles the mounting and has the low-level `littlefs_api` functions to read/write/erase blocks that LittleFS library needs. On mounting by `esp_littlefs` the `lfs_t` structures are created. You need to get a handle to these to use ESP with `lv_fs_littlefs`, as all functions use that `lfs_t` in LittleFS to identify the mounted partition.
In case you don't find a special function in the `lv_fs_littlefs` wrapper, you can look for it in the `esp_littlefs` API and use it directly, as `lv_fs_littlefs` and the `esp_littlefs` APIs can be used side-by-side.
### STDIO
Bride to C standard functions on Linux and Windows. For example `fopen`, `fread`, etc.
### POSIX
Bride to POSIX functions on Linux and Windows. For example `open`, `read`, etc.
### WIN32
Bride to Win32 API function. For example `CreateFileA`, `ReadFile`, etc.
## Usage

View File

@@ -12,6 +12,7 @@
png
gif
freetype
tiny_ttf
qrcode
rlottie
ffmpeg

View File

@@ -12,7 +12,6 @@ Allow the use of JPG images in LVGL. Besides that it also allows the use of a cu
- File read from file and c-array are implemented.
- SJPEG frame fragment cache enables fast fetching of lines if available in cache.
- By default the sjpg image cache will be image width * 2 * 16 bytes (can be modified)
- Currently only 16 bit image format is supported (TODO)
- Only the required partion of the JPG and SJPG images are decoded, therefore they can't be zoomed or rotated.
## Usage

35
docs/libs/tiny_ttf.md Normal file
View File

@@ -0,0 +1,35 @@
# Tiny TTF font engine
## Usage
Use https://github.com/nothings/stb to render TrueType fonts in LVGL.
When enabled in `lv_conf.h` with `LV_USE_TINY_TTF`
`lv_tiny_ttf_create_data(data, data_size, font_size)` can be used to
create a TTF font instance at the specified font size. You can then
use that font anywhere `lv_font_t` is accepted.
By default, the TTF or OTF file must be embedded as an array, either in
a header, or loaded into RAM in order to function.
However, if `LV_TINY_TTF_FILE_SUPPORT` is enabled,
`lv_tiny_ttf_create_file(path, font_size)` will also be available,
allowing tiny_ttf to stream from a file. The file must remain open the
entire time the font is being used, and streaming on demand may be
considerably slower.
After a font is created, you can change the font size in pixels by using
`lv_tiny_ttf_set_size(font, font_size)`.
By default, a font will use up to 4KB of cache to speed up rendering
glyphs. This maximum can be changed by using
`lv_tiny_ttf_create_data_ex(data, data_size, font_size, cache_size)`
or `lv_tiny_ttf_create_file_ex(path, font_size, cache_size)` (when
available). The cache size is indicated in bytes.
## API
```eval_rst
.. doxygenfile:: lv_tiny_ttf.h
:project: lvgl
```

View File

@@ -37,7 +37,7 @@ void update_snapshot(lv_obj_t * obj, lv_obj_t * img_snapshot)
```
### Use Existing Buffer
If the snapshot needs update now and then, or simply caller provides memory, use API `lv_res_t lv_snapshot_take_to_buf(lv_obj_t * obj, lv_img_cf_t cf, lv_img_dsc_t * dsc, void * buf, uint32_t buff_size);` for this case. It's caller's responsibility to alloc/free the memory.
If the snapshot needs update now and then, or simply caller provides memory, use API `lv_res_t lv_snapshot_take_to_buf(lv_obj_t * obj, lv_img_cf_t cf, lv_img_dsc_t * dsc, void * buf, uint32_t buf_size);` for this case. It's caller's responsibility to alloc/free the memory.
If snapshot is generated successfully, the image descriptor is updated and image data will be stored to provided `buf`.

View File

@@ -63,12 +63,11 @@ See the [Display background](#display-background) section for more details. If t
This configuration (transparent screen and display) could be used to create for example OSD menus where a video is played on a lower layer, and a menu is overlayed on an upper layer.
To handle transparent displays, special (slower) color mixing algorithms need to be used by LVGL so this feature needs to enabled with `LV_COLOR_SCREEN_TRANSP` in `lv_conf.h`.
As this mode operates on the Alpha channel of the pixels `LV_COLOR_DEPTH = 32` is also required. The Alpha channel of 32-bit colors will be 0 where there are no objects and 255 where there are solid objects.
The Alpha channel of 32-bit colors will be 0 where there are no objects and 255 where there are solid objects.
In summary, to enable transparent screens and displays for OSD menu-like UIs:
- Enable `LV_COLOR_SCREEN_TRANSP` in `lv_conf.h`
- Be sure to use `LV_COLOR_DEPTH 32`
- Set the screen's opacity to `LV_OPA_TRANSP` e.g. with `lv_obj_set_style_local_bg_opa(lv_scr_act(), LV_OBJMASK_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_TRANSP)`
- Set the screen's opacity to `LV_OPA_TRANSP` e.g. with `lv_obj_set_style_bg_opa(lv_scr_act(), LV_OPA_TRANSP, LV_PART_MAIN)`
- Set the display opacity to `LV_OPA_TRANSP` with `lv_disp_set_bg_opa(NULL, LV_OPA_TRANSP);`
## Features of displays

View File

@@ -99,11 +99,12 @@ This means it's enough to set the base direction of a screen and every object wi
The default base direction for screens can be set by `LV_BIDI_BASE_DIR_DEF` in *lv_conf.h* and other objects inherit the base direction from their parent.
To set an object's base direction use `lv_obj_set_base_dir(obj, base_dir)`. The possible base directions are:
- `LV_BIDI_DIR_LTR`: Left to Right base direction
- `LV_BIDI_DIR_RTL`: Right to Left base direction
- `LV_BIDI_DIR_AUTO`: Auto detect base direction
- `LV_BIDI_DIR_INHERIT`: Inherit base direction from the parent (or a default value for non-screen objects)
To set an object's base direction use `lv_obj_set_style_base_dir(obj, base_dir,selector)`. The possible base directions are:
- `LV_BASE_DIR_LTR`: Left to Right base direction
- `LV_BASE_DIR_RTL`: Right to Left base direction
- `LV_BASE_DIR_AUTO`: Auto detect base direction
- `LV_BASE_DIR_NEUTRAL`
- `LV_BASE_DIR_WEAK`
This list summarizes the effect of RTL base direction on objects:
- Create objects by default on the right
@@ -112,6 +113,7 @@ This list summarizes the effect of RTL base direction on objects:
- `lv_btnmatrix`: Shows buttons from right to left
- `lv_list`: Shows icons on the right
- `lv_dropdown`: Aligns options to the right
- `lv_bar`: Shows progress from right to left
- The texts in `lv_table`, `lv_btnmatrix`, `lv_keyboard`, `lv_tabview`, `lv_dropdown`, `lv_roller` are "BiDi processed" to be displayed correctly
### Arabic and Persian support

View File

@@ -34,11 +34,11 @@ lv_label_set_text(label2, "Button 2"); /*Set the text of the label*/
lv_obj_del(label2);
```
## Bring to the foreground
## Change order
There are four explicit ways to bring an object to the foreground:
- Use `lv_obj_move_foreground(obj)` to bring an object to the foreground. Similarly, use `lv_obj_move_background(obj)` to move it to the background.
- Use `lv_obj_move_up(obj)` to move an object one position up in the hierarchy, Similarly, use `lv_obj_move_down(obj)` to move an object one position down in the hierarchy.
- Use `lv_obj_move_to_index(obj, idx)` to move an object to a given index in the order of children. (0: backgroud, child_num - 1: foreground, <0: count from the top, to move forward (up): `lv_obj_move_to_index(obj, lv_obj_get_index(obj) - 1)`)
- Use `lv_obj_swap(obj1, obj2)` to swap the relative layer position of two objects.
- When `lv_obj_set_parent(obj, new_parent)` is used, `obj` will be on the foreground of the `new_parent`.

View File

@@ -173,7 +173,7 @@ All inputs are disabled during the screen animation.
Screens are created on the currently selected *default display*.
The *default display* is the last registered display with `lv_disp_drv_register`. You can also explicitly select a new default display using `lv_disp_set_default(disp)`.
`lv_scr_act()`, `lv_scr_load()` and `lv_scr_load_anim()` operate on the default screen.
`lv_scr_act()`, `lv_scr_load()` and `lv_scr_load_anim()` operate on the default display.
Visit [Multi-display support](/overview/display) to learn more.

View File

@@ -1,4 +1,32 @@
# ARM-2D GPU
# Arm-2D GPU
TODO
Arm-2D is not a GPU but **an abstraction layer for 2D GPUs dedicated to Microcontrollers**. It supports all Cortex-M processors ranging from Cortex-M0 to the latest Cortex-M85.
Arm-2D is an open-source project on Github. For more, please refer to: https://github.com/ARM-software/Arm-2D.
## How to Use
In general, you can set the macro `LV_USE_GPU_ARM2D` to `1`in `lv_conf.h` to enable Arm-2D acceleration for LVGL.
If you are using **[CMSIS-Pack](https://github.com/lvgl/lvgl/tree/master/env_support/cmsis-pack)** to deploy the LVGL. You don't have to define the macro `LV_USE_GPU_ARM2D` manually, instead, please select the component `GPU Arm-2D` in the **RTE** dialog. This step will define the macro for us.
## Design Considerations
As mentioned before, Arm-2D is an abstraction layer for 2D GPU; hence if there is no accelerator or dedicated instruction set (such as Helium or ACI) available for Arm-2D, it provides negligible performance boost for LVGL (sometimes worse) for regular Cortex-M processors.
**We highly recommend you enable Arm-2D acceleration for LVGL** when:
- The target processors are **Cortex-M55** and/or **Cortex-M85**
- The target processors support **[Helium](https://developer.arm.com/documentation/102102/0103/?lang=en)**.
- The device vendor provides an arm-2d compliant driver for their propriotory 2D accelerators and/or customized instruction set.
- The target device contains [DMA-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)
## Examples
- [A Cortex-M55 (supports Helium) based MDK Project, PC emulation is available.](https://github.com/lvgl/lv_port_an547_cm55_sim)

View File

@@ -355,7 +355,7 @@ Set the opacity of the border. Value 0, `LV_OPA_0` or `LV_OPA_TRANSP` means full
</ul>
### border_width
Set hte width of the border. Only pixel values can be used.
Set the width of the border. Only pixel values can be used.
<ul>
<li style='display:inline; margin-right: 20px; margin-left: 0px'><strong>Default</strong> 0</li>
<li style='display:inline; margin-right: 20px; margin-left: 0px'><strong>Inherited</strong> No</li>
@@ -708,6 +708,15 @@ Scale down all opacity values of the object by this factor. Value 0, `LV_OPA_0`
<li style='display:inline; margin-right: 20px; margin-left: 0px'><strong>Ext. draw</strong> No</li>
</ul>
### opa_layered
First draw the object on the layer, then scale down layer opacity factor. Value 0, `LV_OPA_0` or `LV_OPA_TRANSP` means fully transparent, 255, `LV_OPA_100` or `LV_OPA_COVER` means fully covering, other values or LV_OPA_10, LV_OPA_20, etc means semi transparency.
<ul>
<li style='display:inline; margin-right: 20px; margin-left: 0px'><strong>Default</strong> `LV_OPA_COVER`</li>
<li style='display:inline; margin-right: 20px; margin-left: 0px'><strong>Inherited</strong> Yes</li>
<li style='display:inline; margin-right: 20px; margin-left: 0px'><strong>Layout</strong> No</li>
<li style='display:inline; margin-right: 20px; margin-left: 0px'><strong>Ext. draw</strong> No</li>
</ul>
### color_filter_dsc
Mix a color to all colors of the object.
<ul>
@@ -772,7 +781,7 @@ Describes how to blend the colors to the background. The possible values are `LV
</ul>
### layout
Set the layout if the object. The children will be repositioned and resized according to the policies set for the layout. For the possible values see the documentation of the layouts.
Set the layout of the object. The children will be repositioned and resized according to the policies set for the layout. For the possible values see the documentation of the layouts.
<ul>
<li style='display:inline; margin-right: 20px; margin-left: 0px'><strong>Default</strong> 0</li>
<li style='display:inline; margin-right: 20px; margin-left: 0px'><strong>Inherited</strong> No</li>

View File

@@ -204,6 +204,10 @@ The default rotation of your display when it is initialized can be set using the
Display rotation can also be changed at runtime using the `lv_disp_set_rotation(disp, rot)` API.
If you enable rotation the coordinates of the pointer input devices (e.g. touchpad) will be rotated too.
Note that when using software rotation, you cannot use neither `direct_mode` nor `full_refresh` in the driver. When using either of these, you will have to rotate the pixels yourself e.g. in the `flush_cb`.
Support for software rotation is a new feature, so there may be some glitches/bugs depending on your configuration. If you encounter a problem please open an issue on [GitHub](https://github.com/lvgl/lvgl/issues).
### Decoupling the display refresh timer

View File

@@ -114,7 +114,7 @@ You need to have 3 buttons available:
- `LV_KEY_RIGHT` will simulate turning encoder right
- other keys will be passed to the focused widget
If you hold the keys it will simulate an encoder advance with period specified in `indev_drv.long_press_rep_time`.
If you hold the keys it will simulate an encoder advance with period specified in `indev_drv.long_press_repeat_time`.
```c
indev_drv.type = LV_INDEV_TYPE_ENCODER;
@@ -172,7 +172,7 @@ The default value of the following parameters can be changed in `lv_indev_drv_t`
- `scroll_limit` Number of pixels to slide before actually scrolling the object.
- `scroll_throw` Scroll throw (momentum) slow-down in [%]. Greater value means faster slow-down.
- `long_press_time` Press time to send `LV_EVENT_LONG_PRESSED` (in milliseconds)
- `long_press_rep_time` Interval of sending `LV_EVENT_LONG_PRESSED_REPEAT` (in milliseconds)
- `long_press_repeat_time` Interval of sending `LV_EVENT_LONG_PRESSED_REPEAT` (in milliseconds)
- `read_timer` pointer to the `lv_timer` which reads the input device. Its parameters can be changed by `lv_timer_...()` functions. `LV_INDEV_DEF_READ_PERIOD` in `lv_conf.h` sets the default read period.
### Feedback

View File

@@ -25,7 +25,7 @@ So in the example the first row will have 2 buttons each with 50% width and a se
The buttons' width can be set relative to the other button in the same row with `lv_btnmatrix_set_btn_width(btnm, btn_id, width)`
E.g. in a line with two buttons: *btnA, width = 1* and *btnB, width = 2*, *btnA* will have 33 % width and *btnB* will have 66 % width.
It's similar to how the [`flex-grow`](https://developer.mozilla.org/en-US/docs/Web/CSS/flex-grow) property works in CSS.
The width must be in the \[1..7\] range and the default width is 1.
The width must be in the \[1..15\] range and the default width is 1.
In addition to the width, each button can be customized with the following parameters:
- `LV_BTNMATRIX_CTRL_HIDDEN` Makes a button hidden (hidden buttons still take up space in the layout, they are just not visible or clickable)

View File

@@ -43,7 +43,7 @@ Options are passed to the drop-down list as a string with `lv_dropdown_set_optio
The `lv_dropdown_add_option(dropdown, "New option", pos)` function inserts a new option to `pos` index.
To save memory the options can set from a static(constant) string too with `lv_dropdown_set_static_options(dropdown, options)`.
To save memory the options can set from a static(constant) string too with `lv_dropdown_set_options_static(dropdown, options)`.
In this case the options string should be alive while the drop-down list exists and `lv_dropdown_add_option` can't be used
You can select an option manually with `lv_dropdown_set_selected(dropdown, id)`, where `id` is the index of an option.

View File

@@ -44,7 +44,9 @@ This is not the case with `lv_label_set_text_static`. The buffer you pass to `lv
### Text recolor
In the text, you can use commands to recolor parts of the text. For example: `"Write a #ff0000 red# word"`.
This feature can be enabled individually for each label by `lv_label_set_recolor()` function.
This feature can be enabled individually for each label by `lv_label_set_recolor()` function,
recoloring is only supported when the text wrapped with `##ff0000 ... #`sintax is in one line,
it is not supported in wrapped text, see example `Line wrap, recoloring and scrolling`.
### Text selection
If enabled by `LV_LABEL_TEXT_SELECTION` part of the text can be selected. It's similar to when you use your mouse on a PC to select a text.

View File

@@ -18,6 +18,8 @@ Options are passed to the Roller as a string with `lv_roller_set_options(roller,
You can select an option manually with `lv_roller_set_selected(roller, id, LV_ANIM_ON/OFF)`, where *id* is the index of an option.
If the roller has a lot of options then especially in infinite mode the rendered options of the display might look scrambled. In this case `LV_USE_LARGE_COORD` should be enabled in `lv_conf.h`
### Get selected option
To get the *index* of the currently selected option use `lv_roller_get_selected(roller)`.

View File

@@ -1,5 +1,7 @@
# Calendar (lv_calendar)
**From v8.1 the header is added directly into the Calendar widget and the API of the headers has been changed.**
## Overview
The Calendar object is a classic calendar which can:
@@ -13,13 +15,16 @@ The Calendar is added to the default group (if it is set). Calendar is an editab
To make the Calendar flexible, by default it doesn't show the current year or month. Instead, there are optional "headers" that can be attached to the calendar.
## Parts and Styles
The calendar object uses the [Button matrix](/widgets/core/btnmatrix) object under the hood to arrange the days into a matrix.
- `LV_PART_MAIN` The background of the calendar. Uses all the background related style properties.
- `LV_PART_ITEMS` Refers to the dates and day names. Button matrix control flags are set to differentiate the buttons and a custom drawer event is added modify the properties of the buttons as follows:
- day names have no border, no background and drawn with a gray color
- days of the previous and next month have `LV_BTNMATRIX_CTRL_DISABLED` flag
- today has a thicker border with the theme's primary color
- highlighted days have some opacity with the theme's primary color.
The Calendar is composed of 3 widegets
- Container: A rectangle which is a container for the *Header* and the *Days*. Uses only `LV_PART_MAIN` where all the background related style properties are working.
- Days: It's a [Button matrix](/widgets/core/btnmatrix) object under the hood to arrange the days into a matrix. `lv_calendar_get_btnmatrix(calendar)` can be used to get it.
- `LV_PART_MAIN` The background of the calendar. Uses all the background related style properties.
- `LV_PART_ITEMS` Refers to the dates and day names. Button matrix control flags are set to differentiate the buttons and a custom drawer event is added modify the properties of the buttons as follows:
- day names have no border, no background and drawn with a gray color
- days of the previous and next month have `LV_BTNMATRIX_CTRL_DISABLED` flag
- today has a thicker border with the theme's primary color
- highlighted days have some opacity with the theme's primary color.
- Header: Not created by default, the details are up to the given header.
## Usage
@@ -40,6 +45,13 @@ Only the array's pointer will be saved so the array should be a static or global
The name of the days can be adjusted with `lv_calendar_set_day_names(calendar, day_names)` where `day_names` looks like `const char * day_names[7] = {"Su", "Mo", ...};`
Only the pointer of the day names is saved so the elements should be static, global or constant variables.
### Custom year list
Sets a custom year list with `lv_calendar_header_dropdown_set_year_list(calendar, years_list)`
where ``years_list`` is a pointer to the custom years list. It can be a constant string
like ``static const char * years = "2023\n2022\n2021\n2020\n2019";``,
or can be generated dynamically into a buffer as well.
## Events
- `LV_EVENT_VALUE_CHANGED` Sent if a date is clicked. `lv_calendar_get_pressed_date(calendar, &date)` set `date` to the date currently being pressed. Returns `LV_RES_OK` if there is a valid pressed date, else `LV_RES_INV`.
@@ -53,8 +65,6 @@ Learn more about [Keys](/overview/indev).
## Headers
**From v8.1 the header is added directly into the Calendar widget and the API of the headers has been changed.**
### Arrow buttons
`lv_calendar_header_arrow_create(calendar)` creates a header that contains a left and right arrow on the sides and a text with the current year and month between them.

View File

@@ -1,11 +1,11 @@
# Meter (lv_meter)
## Overview
The Meter widget can visualize data in very flexible ways. In can show arcs, needles, ticks lines and labels.
The Meter widget can visualize data in very flexible ways. It can show arcs, needles, ticks lines and labels.
## Parts and Styles
- `LV_PART_MAIN` The background of the Meter. Uses the typical background properties.
- `LV_PART_TICK` The tick lines a labels using the *line* and *text* style properties.
- `LV_PART_TICKS` The tick lines a labels using the *line* and *text* style properties.
- `LV_PART_INDICATOR` The needle line or image using the *line* and *img* style properties, as well as the background properties to draw a square (or circle) on the pivot of the needles. Padding makes the square larger.
- `LV_PART_ITEMS` The arcs using the *arc* properties.
@@ -18,7 +18,7 @@ The Scale has minor and major ticks and labels on the major ticks. Later indicat
Any number of scales can be added to Meter.
The minor tick lines can be configured with: `lv_meter_set_scale_ticks(meter, scale, tick_count, line_width, tick_length, ctick_olor)`.
The minor tick lines can be configured with: `lv_meter_set_scale_ticks(meter, scale, tick_count, line_width, tick_length, tick_color)`.
To add major tick lines use `lv_meter_set_scale_major_ticks(meter, scale, nth_major, tick_width, tick_length, tick_color, label_gap)`. `nth_major` to specify how many minor ticks to skip to draw a major tick.
@@ -46,7 +46,7 @@ All the indicator add functions return `lv_meter_indicator_t *`.
`lv_meter_set_indicator_value(meter, inidicator, value)` sets the value of the indicator.
#### Arc
`indic = lv_meter_add_arc(meter, scale, arc_width, arc_color, r_mod)` adds and arc indicator. . By default, the radius of the arc is the same as the scale's radius but `r_mod` changes the radius.
`indic = lv_meter_add_arc(meter, scale, arc_width, arc_color, r_mod)` adds an arc indicator. By default, the radius of the arc is the same as the scale's radius but `r_mod` changes the radius.
`lv_meter_set_indicator_start_value(meter, indic, value)` and `lv_meter_set_indicator_end_value(meter, inidicator, value)` sets the value of the indicator.

View File

@@ -37,7 +37,7 @@ like label object, the spangroup can be set to one the following modes:
use function `lv_spangroup_set_align(spangroup, LV_TEXT_ALIGN_CENTER)` to set text align.
### Modes
The spangroup can be set to one the following modes:
The spangroup can be set to one of the following modes:
- `LV_SPAN_MODE_FIXED` fixes the object size.
- `LV_SPAN_MODE_EXPAND` Expand the object size to the text size but stay on a single line.
- `LV_SPAN_MODE_BREAK` Keep width, break the too long lines and auto expand height.
@@ -45,14 +45,14 @@ The spangroup can be set to one the following modes:
Use `lv_spangroup_set_mode(spangroup, LV_SPAN_MODE_BREAK)` to set object mode.
### Overflow
The spangroup can be set to one the following modes:
The spangroup can be set to one of the following modes:
- `LV_SPAN_OVERFLOW_CLIP` truncates the text at the limit of the area.
- `LV_SPAN_OVERFLOW_ELLIPSIS` will display an ellipsis(`...`) when text overflows the area.
Use `lv_spangroup_set_overflow(spangroup, LV_SPAN_OVERFLOW_CLIP)` to set object overflow mode.
### first line indent
Use `lv_spangroup_set_indent(spangroup, 20)` to set the indent of the first line. all modes support pixel units, in addition to LV_SPAN_MODE_FIXED and LV_SPAN_MODE_BREAK mode supports percentage units too.
Use `lv_spangroup_set_indent(spangroup, 20)` to set the indent of the first line. All modes support pixel units, in addition to LV_SPAN_MODE_FIXED and LV_SPAN_MODE_BREAK mode supports percentage units too.
### lines
Use `lv_spangroup_set_lines(spangroup, 10)` to set the maximum number of lines to be displayed in LV_SPAN_MODE_BREAK mode, negative values indicate no limit.

View File

@@ -38,7 +38,7 @@ Learn more about [Events](/overview/event).
## Keys
- `LV_KEY_LEFT/RIGHT` With *Keypad* move the cursor left/right. With *Encoder* decrement/increment the selected digit.
- `LV_KEY_UP/DOWN` With *Keypad* and *Encoder* increment/decrement the value.
- `LV_KEY_ENTER` With *Encoder* got the net digit. Jump to the first after the last.
- `LV_KEY_ENTER` With *Encoder* got the next digit. Jump to the first after the last.
## Example

View File

@@ -13,7 +13,7 @@ The parts are identical to the parts of [lv_arc](/widgets/core/arc).
To create a spinner use `lv_spinner_create(parent, spin_time, arc_length)`. `spin time` sets the spin time in milliseconds, `arc_length` sets the length of the spinning arc in degrees.
## Events
No special events are sent to the Spinner.
No special events are sent by the Spinner.
See the events of the [Arc](/widgets/core/arc) too.

View File

@@ -63,6 +63,18 @@ install(
FILES_MATCHING
PATTERN "*.h")
install(
FILES "${LV_CONF_PATH}"
DESTINATION "${CMAKE_INSTALL_PREFIX}/${INC_INSTALL_DIR}/../"
RENAME "lv_conf.h"
OPTIONAL)
configure_file("${LVGL_ROOT_DIR}/lvgl.pc.in" lvgl.pc @ONLY)
install(
FILES "${CMAKE_BINARY_DIR}/lvgl.pc"
DESTINATION "${LIB_INSTALL_DIR}/pkgconfig/")
set_target_properties(
lvgl
PROPERTIES OUTPUT_NAME lvgl

View File

@@ -12,22 +12,43 @@ if(LV_MICROPYTHON)
${LVGL_ROOT_DIR}/../
REQUIRES
main)
target_compile_definitions(${COMPONENT_LIB}
INTERFACE "-DLV_CONF_INCLUDE_SIMPLE")
if(CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM)
target_compile_definitions(${COMPONENT_LIB}
INTERFACE "-DLV_ATTRIBUTE_FAST_MEM=IRAM_ATTR")
endif()
else()
idf_component_register(SRCS ${SOURCES} INCLUDE_DIRS ${LVGL_ROOT_DIR}
${LVGL_ROOT_DIR}/src ${LVGL_ROOT_DIR}/../)
target_compile_definitions(${COMPONENT_LIB} PUBLIC "-DLV_CONF_INCLUDE_SIMPLE")
if(CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM)
target_compile_definitions(${COMPONENT_LIB}
PUBLIC "-DLV_ATTRIBUTE_FAST_MEM=IRAM_ATTR")
if(CONFIG_LV_BUILD_EXAMPLES)
file(GLOB_RECURSE EXAMPLE_SOURCES ${LVGL_ROOT_DIR}/examples/*.c)
set_source_files_properties(${EXAMPLE_SOURCES} COMPILE_FLAGS "-Wno-unused-variable -Wno-format")
endif()
if(CONFIG_LV_USE_DEMO_WIDGETS)
file(GLOB_RECURSE DEMO_WIDGETS_SOURCES ${LVGL_ROOT_DIR}/demos/widgets/*.c)
list(APPEND DEMO_SOURCES ${DEMO_WIDGETS_SOURCES})
endif()
if(CONFIG_LV_USE_DEMO_KEYPAD_AND_ENCODER)
file(GLOB_RECURSE DEMO_KEYPAD_AND_ENCODER_SOURCES ${LVGL_ROOT_DIR}/demos/keypad_encoder/*.c)
list(APPEND DEMO_SOURCES ${DEMO_KEYPAD_AND_ENCODER_SOURCES})
endif()
if(CONFIG_LV_USE_DEMO_BENCHMARK)
file(GLOB_RECURSE DEMO_BENCHMARK_SOURCES ${LVGL_ROOT_DIR}/demos/benchmark/*.c)
list(APPEND DEMO_SOURCES ${DEMO_BENCHMARK_SOURCES})
endif()
if(CONFIG_LV_USE_DEMO_STRESS)
file(GLOB_RECURSE DEMO_STRESS_SOURCES ${LVGL_ROOT_DIR}/demos/stress/*.c)
list(APPEND DEMO_SOURCES ${DEMO_STRESS_SOURCES})
endif()
if(CONFIG_LV_USE_DEMO_MUSIC)
file(GLOB_RECURSE DEMO_MUSIC_SOURCES ${LVGL_ROOT_DIR}/demos/music/*.c)
list(APPEND DEMO_SOURCES ${DEMO_MUSIC_SOURCES})
set_source_files_properties(${DEMO_MUSIC_SOURCES} COMPILE_FLAGS "-Wno-format")
endif()
idf_component_register(SRCS ${SOURCES} ${EXAMPLE_SOURCES} ${DEMO_SOURCES}
INCLUDE_DIRS ${LVGL_ROOT_DIR} ${LVGL_ROOT_DIR}/src ${LVGL_ROOT_DIR}/../
${LVGL_ROOT_DIR}/examples ${LVGL_ROOT_DIR}/demos
REQUIRES esp_timer)
endif()
target_compile_definitions(${COMPONENT_LIB} PUBLIC "-DLV_CONF_INCLUDE_SIMPLE")
if(CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM)
target_compile_definitions(${COMPONENT_LIB}
PUBLIC "-DLV_ATTRIBUTE_FAST_MEM=IRAM_ATTR")
endif()

View File

@@ -20,7 +20,7 @@
-->
<package schemaVersion="1.4" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="PACK.xsd">
<package schemaVersion="1.4" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="https://raw.githubusercontent.com/Open-CMSIS-Pack/Open-CMSIS-Pack-Spec/v1.7.7/schema/PACK.xsd">
<vendor>LVGL</vendor>
<name>lvgl</name>
<description>LVGL (Light and Versatile Graphics Library) is a free and open-source graphics library providing everything you need to create an embedded GUI with easy-to-use graphical elements, beautiful visual effects and a low memory footprint.</description>
@@ -36,12 +36,47 @@
<repository type="git">https://github.com/lvgl/lvgl.git</repository>
<releases>
<release date="2022-07-06" version="1.0.6" url="https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/LVGL.lvgl.1.0.6.pack">
- LVGL 8.3.0 release
- Apply patch for memory leaking issue
- Apply patch to speed up non normal blend mode
- Add 9-key input mode to pinyin
- Other minor changes
<release date="2023-12-05" version="8.3.11" url="https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/LVGL.lvgl.8.3.11.pack">
- LVGL 8.3.11
- Add LittleFS Library to LVGL8
- Backport Tiny TTF to LVGL8
- Some minor fixes
</release>
<release date="2023-09-19" version="8.3.10" url="https://github.com/lvgl/lvgl/raw/9e388055ec0bcad5179461e66d6dac6823129eee/env_support/cmsis-pack/LVGL.lvgl.8.3.10.pack">
- LVGL 8.3.10
- Some minor fixes
</release>
<release date="2023-08-04" version="8.3.9" url="https://github.com/lvgl/lvgl/raw/bdf5bfb88ce107f16cf9128cf75e61394b3219d0/env_support/cmsis-pack/LVGL.lvgl.8.3.9.pack">
- LVGL 8.3.10
- Add snapshot, fragment, imgfont, gridnav, msg and monkey
- Other minor fixes
</release>
<release date="2023-07-04" version="8.3.8" url="https://github.com/lvgl/lvgl/raw/15433d69b9d8ae6aa74f49946874af81a0cc5921/env_support/cmsis-pack/LVGL.lvgl.8.3.8.pack">
- LVGL 8.3.8
- Add renesas-ra6m3 gpu adaptation
- Improve performance and add more features for PXP and VGLite
- Minor updates
</release>
<release date="2023-04-28" version="8.3.7" url="https://github.com/lvgl/lvgl/raw/2b56e04205481daa6575bd5f7ab5df59d11676eb/env_support/cmsis-pack/LVGL.lvgl.8.3.7.pack">
- LVGL 8.3.7
- Minor updates
</release>
<release date="2023-04-02" version="8.3.6" url="https://github.com/lvgl/lvgl/raw/6b0092c0d91b2c7bfded48e04cc7b486ed3a72bd/env_support/cmsis-pack/LVGL.lvgl.8.3.6.pack">
- LVGL 8.3.6 release
- Various fixes, See CHANGELOG.md
</release>
<release date="2023-02-06" version="8.3.5" url="https://github.com/lvgl/lvgl/raw/e7e8cf846dce96f7542e27b5c9655bab680c31a1/env_support/cmsis-pack/LVGL.lvgl.8.3.5.pack">
- LVGL 8.3.5 release
- Use LVGL version as the cmsis-pack version
- Fix GPU support for NXP PXP and NXP VGLite
- Rework stm32 DMA2D support
- Various fixes
</release>
<release date="2022-12-31" version="1.0.6-p1" url="https://github.com/lvgl/lvgl/raw/dbb15bb3ea0365373bc1ba8b182556f937e61e7d/env_support/cmsis-pack/LVGL.lvgl.1.0.6-p1.pack">
- LVGL 8.3.4 release
- Update GPU Arm-2D support
- Various fixes
</release>
<release date="2022-06-29" version="1.0.5" url="https://github.com/GorgonMeducer/lvgl/raw/922108dbbe6d1c0be1069c342ca8693afee8c169/env_support/cmsis-pack/LVGL.lvgl.1.0.5.pack">
- LVGL 8.3.0-dev
@@ -159,6 +194,90 @@
<require Cclass="Acceleration" Cgroup="Arm-2D"/>
</condition>
<condition id="LVGL-GPU-Arm-2D">
<description>Enable LVGL Arm-2D GPU Support</description>
<require Cclass="LVGL" Cgroup="lvgl" Csub="Essential"/>
<!--<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU Arm-2D"/>-->
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU STM32-DMA2D"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU SWM341-DMA2D"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU NXP-PXP"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU NXP-VGLite"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU GD32-IPA"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="LVGL-GPU-RA6M3-G2D"/>
</condition>
<condition id="LVGL-GPU-STM32-DMA2D">
<description>Enable LVGL Arm-2D GPU Support</description>
<require Cclass="LVGL" Cgroup="lvgl" Csub="Essential"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU Arm-2D"/>
<!--<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU STM32-DMA2D"/>-->
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU SWM341-DMA2D"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU NXP-PXP"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU NXP-VGLite"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU GD32-IPA"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="LVGL-GPU-RA6M3-G2D"/>
</condition>
<condition id="LVGL-GPU-SWM341-DMA2D">
<description>Enable LVGL Arm-2D GPU Support</description>
<require Cclass="LVGL" Cgroup="lvgl" Csub="Essential"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU Arm-2D"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU STM32-DMA2D"/>
<!--<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU SWM341-DMA2D"/>-->
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU NXP-PXP"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU NXP-VGLite"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU GD32-IPA"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="LVGL-GPU-RA6M3-G2D"/>
</condition>
<condition id="LVGL-GPU-NXP-PXP">
<description>Enable LVGL Arm-2D GPU Support</description>
<require Cclass="LVGL" Cgroup="lvgl" Csub="Essential"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU Arm-2D"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU STM32-DMA2D"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU SWM341-DMA2D"/>
<!--<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU NXP-PXP"/>-->
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU NXP-VGLite"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU GD32-IPA"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="LVGL-GPU-RA6M3-G2D"/>
</condition>
<condition id="LVGL-GPU-NXP-VGLite">
<description>Enable LVGL Arm-2D GPU Support</description>
<require Cclass="LVGL" Cgroup="lvgl" Csub="Essential"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU Arm-2D"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU STM32-DMA2D"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU SWM341-DMA2D"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU NXP-PXP"/>
<!--<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU NXP-VGLite"/>-->
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU GD32-IPA"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="LVGL-GPU-RA6M3-G2D"/>
</condition>
<condition id="LVGL-GPU-GD32-IPA">
<description>Enable LVGL Arm-2D GPU Support</description>
<require Cclass="LVGL" Cgroup="lvgl" Csub="Essential"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU Arm-2D"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU STM32-DMA2D"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU SWM341-DMA2D"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU NXP-PXP"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU NXP-VGLite"/>
<!--<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU GD32-IPA"/>-->
<deny Cclass="LVGL" Cgroup="lvgl" Csub="LVGL-GPU-RA6M3-G2D"/>
</condition>
<condition id="LVGL-GPU-RA6M3-G2D">
<description>Enable LVGL Arm-2D GPU Support</description>
<require Cclass="LVGL" Cgroup="lvgl" Csub="Essential"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU Arm-2D"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU STM32-DMA2D"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU SWM341-DMA2D"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU NXP-PXP"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU NXP-VGLite"/>
<deny Cclass="LVGL" Cgroup="lvgl" Csub="GPU GD32-IPA"/>
<!--<deny Cclass="LVGL" Cgroup="lvgl" Csub="LVGL-GPU-RA6M3-G2D"/>-->
</condition>
</conditions>
<!-- apis section (optional - for Application Programming Interface descriptions) -->
<!--
@@ -191,7 +310,7 @@
-->
<components>
<bundle Cbundle="LVGL" Cclass="LVGL" Cversion="8.3.0">
<bundle Cbundle="LVGL" Cclass="LVGL" Cversion="8.3.11">
<description>LVGL (Light and Versatile Graphics Library) is a free and open-source graphics library providing everything you need to create an embedded GUI with easy-to-use graphical elements, beautiful visual effects and a low memory footprint.</description>
<doc></doc>
<component Cgroup="lvgl" Csub="Essential" >
@@ -324,10 +443,18 @@
<file category="sourceC" name="src/widgets/lv_textarea.c" />
<!-- general -->
<file category="preIncludeGlobal" name="lv_conf_cmsis.h" attr="config" version="1.0.2" />
<file category="preIncludeGlobal" name="lv_conf_cmsis.h" attr="config" version="1.0.4" />
<file category="sourceC" name="lv_cmsis_pack.c" attr="config" version="1.0.0" />
<file category="header" name="lvgl.h" />
<file category="doc" name="README.md"/>
<!-- code template -->
<file category="header" name="examples/porting/lv_port_disp_template.h" attr="template" select="Display port template" version="2.0.0"/>
<file category="sourceC" name="examples/porting/lv_port_disp_template.c" attr="template" select="Display port template" version="2.0.0"/>
<file category="header" name="examples/porting/lv_port_indev_template.h" attr="template" select="Input devices port template" version="2.0.0"/>
<file category="sourceC" name="examples/porting/lv_port_indev_template.c" attr="template" select="Input devices port template" version="2.0.0"/>
<file category="header" name="examples/porting/lv_port_fs_template.h" attr="template" select="File system port template" version="2.0.0"/>
<file category="sourceC" name="examples/porting/lv_port_fs_template.c" attr="template" select="File system port template" version="2.0.0"/>
</files>
@@ -360,7 +487,7 @@
</files>
</component>
<component Cgroup="lvgl" Csub="GPU Arm-2D" condition="LVGL-Essential" Cversion="1.0.3">
<component Cgroup="lvgl" Csub="GPU Arm-2D" condition="LVGL-GPU-Arm-2D" Cversion="1.2.2">
<description>A 2D image processing library from Arm (i.e. Arm-2D) for All Cortex-M processors including Cortex-M0</description>
<files>
<file category="sourceC" name="src/draw/arm2d/lv_gpu_arm2d.c" condition="Arm-2D"/>
@@ -375,7 +502,7 @@
</component>
<component Cgroup="lvgl" Csub="GPU STM32-DMA2D" condition="LVGL-Essential">
<component Cgroup="lvgl" Csub="GPU STM32-DMA2D" condition="LVGL-GPU-STM32-DMA2D">
<description>An hardware acceleration from STM32-DMA2D</description>
<files>
<file category="sourceC" name="src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.c" />
@@ -389,7 +516,7 @@
</component>
<component Cgroup="lvgl" Csub="GPU SWM341-DMA2D" condition="LVGL-Essential">
<component Cgroup="lvgl" Csub="GPU SWM341-DMA2D" condition="LVGL-GPU-SWM341-DMA2D">
<description>An hardware acceleration from SWM341-DMA2D</description>
<files>
<file category="sourceC" name="src/draw/swm341_dma2d/lv_gpu_swm341_dma2d.c" />
@@ -403,13 +530,13 @@
</component>
<component Cgroup="lvgl" Csub="GPU NXP-PXP" condition="LVGL-Essential">
<component Cgroup="lvgl" Csub="GPU NXP-PXP" condition="LVGL-GPU-NXP-PXP">
<description>An hardware acceleration from NXP-PXP</description>
<files>
<file category="sourceC" name="src/draw/nxp/lv_gpu_nxp.c" />
<file category="sourceC" name="src/draw/nxp/pxp/lv_draw_pxp_blend.c" />
<file category="sourceC" name="src/draw/nxp/pxp/lv_gpu_nxp_pxp.c" />
<file category="sourceC" name="src/draw/nxp/pxp/lv_gpu_nxp_pxp_osa.c" />
<file category="sourceC" name="src/draw/nxp/pxp/lv_draw_pxp.c" />
<file category="sourceC" name="src/draw/nxp/pxp/lv_draw_pxp_blend.c" />
<file category="sourceC" name="src/draw/nxp/pxp/lv_gpu_nxp_pxp.c" />
<file category="sourceC" name="src/draw/nxp/pxp/lv_gpu_nxp_pxp_osa.c" />
</files>
<RTE_Components_h>
@@ -420,14 +547,16 @@
</component>
<component Cgroup="lvgl" Csub="GPU NXP-VGLite" condition="LVGL-Essential">
<component Cgroup="lvgl" Csub="GPU NXP-VGLite" condition="LVGL-GPU-NXP-VGLite">
<description>An hardware acceleration from NXP-VGLite</description>
<files>
<file category="sourceC" name="src/draw/nxp/lv_gpu_nxp.c" />
<file category="sourceC" name="src/draw/nxp/vglite/lv_draw_vglite_arc.c" />
<file category="sourceC" name="src/draw/nxp/vglite/lv_draw_vglite_blend.c" />
<file category="sourceC" name="src/draw/nxp/vglite/lv_draw_vglite_rect.c" />
<file category="sourceC" name="src/draw/nxp/vglite/lv_gpu_nxp_vglite.c" />
<file category="sourceC" name="src/draw/nxp/vglite/lv_draw_vglite.c" />
<file category="sourceC" name="src/draw/nxp/vglite/lv_draw_vglite_arc.c" />
<file category="sourceC" name="src/draw/nxp/vglite/lv_draw_vglite_blend.c" />
<file category="sourceC" name="src/draw/nxp/vglite/lv_draw_vglite_line.c" />
<file category="sourceC" name="src/draw/nxp/vglite/lv_draw_vglite_rect.c" />
<file category="sourceC" name="src/draw/nxp/vglite/lv_vglite_buf.c" />
<file category="sourceC" name="src/draw/nxp/vglite/lv_vglite_utils.c" />
</files>
<RTE_Components_h>
@@ -438,6 +567,22 @@
</component>
<component Cgroup="lvgl" Csub="GPU RA6M3-G2D" condition="LVGL-GPU-RA6M3-G2D">
<description>An hardware acceleration from Renesas RA6M3-G2D</description>
<files>
<file category="sourceC" name="src/draw/renesas/lv_gpu_d2_draw_label.c" />
<file category="sourceC" name="src/draw/renesas/lv_gpu_d2_ra6m3.c" />
</files>
<RTE_Components_h>
/*! \brief enable RA6M3-G2D */
#define LV_USE_GPU_RA6M3_G2D 1
</RTE_Components_h>
</component>
<component Cgroup="lvgl" Csub="Extra Themes" condition="LVGL-Essential">
<description>Extra Themes, Widgets and Layouts</description>
<files>
@@ -583,9 +728,26 @@
<file category="sourceC" name="src/extra/libs/fsdrv/lv_fs_fatfs.c" />
<file category="sourceC" name="src/extra/libs/fsdrv/lv_fs_posix.c" />
<file category="sourceC" name="src/extra/libs/fsdrv/lv_fs_stdio.c" />
<file category="sourceC" name="src/extra/libs/fsdrv/lv_fs_littlefs.c" />
</files>
</component>
<component Cgroup="lvgl" Csub="Libs Tiny TTF" condition="LVGL-Essential">
<description>Add Tiny TTF Library</description>
<files>
<!-- src/extra/libs/tiny_ttf -->
<file category="sourceC" name="src/extra/libs/tiny_ttf/lv_tiny_ttf.c" />
</files>
<RTE_Components_h>
/*! \brief enable Tiny TTF Library */
#define LV_USE_TINY_TTF 1
</RTE_Components_h>
</component>
<component Cgroup="lvgl" Csub="Libs RLOTTIE" condition="LVGL-Essential">
<description>Add RLOTTIE support, an extra librbary is required.</description>
@@ -597,7 +759,7 @@
<RTE_Components_h>
/*! \brief enable RLOTTIE support */
#define LV_USE_RLOTTIE 1
#define LV_USE_RLOTTIE 1
</RTE_Components_h>
</component>
@@ -612,7 +774,7 @@
<RTE_Components_h>
/*! \brief enable ffmpeg support */
#define LV_USE_FFMPEG 1
#define LV_USE_FFMPEG 1
</RTE_Components_h>
</component>
@@ -627,7 +789,98 @@
<RTE_Components_h>
/*! \brief enable ffmpeg support */
#define LV_USE_IME_PINYIN 1
#define LV_USE_IME_PINYIN 1
</RTE_Components_h>
</component>
<component Cgroup="lvgl" Csub="Snapshot" condition="LVGL-Essential">
<description>Add the Snapshot service</description>
<files>
<!-- src/extra/others/snapshot -->
<file category="sourceC" name="src/extra/others/snapshot/lv_snapshot.c" />
</files>
<RTE_Components_h>
/*! \brief enable snapshot support */
#define LV_USE_SNAPSHOT 1
</RTE_Components_h>
</component>
<component Cgroup="lvgl" Csub="Fragment" condition="LVGL-Essential">
<description>Add the Fragment service</description>
<files>
<!-- src/extra/others/fragment -->
<file category="sourceC" name="src/extra/others/fragment/lv_fragment.c" />
<file category="sourceC" name="src/extra/others/fragment/lv_fragment_manager.c" />
</files>
<RTE_Components_h>
/*! \brief enable fragment support */
#define LV_USE_FRAGMENT 1
</RTE_Components_h>
</component>
<component Cgroup="lvgl" Csub="Grid Navigation" condition="LVGL-Essential">
<description>Add the Grid Navigation service</description>
<files>
<!-- src/extra/others/gridnav -->
<file category="sourceC" name="src/extra/others/gridnav/lv_gridnav.c" />
</files>
<RTE_Components_h>
/*! \brief enable the Grid Navigation support*/
#define LV_USE_GRIDNAV 1
</RTE_Components_h>
</component>
<component Cgroup="lvgl" Csub="Image Font" condition="LVGL-Essential">
<description>Add the Image Font service</description>
<files>
<!-- src/extra/others/imgfont -->
<file category="sourceC" name="src/extra/others/imgfont/lv_imgfont.c" />
</files>
<RTE_Components_h>
/*! \brief enable the image font support*/
#define LV_USE_IMGFONT 1
</RTE_Components_h>
</component>
<component Cgroup="lvgl" Csub="Monkey" condition="LVGL-Essential">
<description>Add the Monkey service</description>
<files>
<!-- src/extra/others/monkey -->
<file category="sourceC" name="src/extra/others/monkey/lv_monkey.c" />
</files>
<RTE_Components_h>
/*! \brief enable the monkey service support*/
#define LV_USE_MONKEY 1
</RTE_Components_h>
</component>
<component Cgroup="lvgl" Csub="Message" condition="LVGL-Essential">
<description>Add the Message service</description>
<files>
<!-- src/extra/others/msg -->
<file category="sourceC" name="src/extra/others/msg/lv_msg.c" />
</files>
<RTE_Components_h>
/*! \brief enable the message service support*/
#define LV_USE_MSG 1
</RTE_Components_h>
</component>
@@ -656,7 +909,7 @@
<RTE_Components_h>
/*! \brief enable demo:bencharmk */
#define LV_USE_DEMO_BENCHMARK 1
#define LV_USE_DEMO_BENCHMARK 1
</RTE_Components_h>
</component>
@@ -676,7 +929,7 @@
<RTE_Components_h>
/*! \brief enable demo:widgets support */
#define LV_USE_DEMO_WIDGETS 1
#define LV_USE_DEMO_WIDGETS 1
</RTE_Components_h>
</component>

View File

@@ -2,8 +2,8 @@
<index schemaVersion="1.0.0" xs:noNamespaceSchemaLocation="PackIndex.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance">
<vendor>LVGL</vendor>
<url>https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/</url>
<timestamp>2022-07-06T00:09:27</timestamp>
<timestamp>2023-12-09</timestamp>
<pindex>
<pdsc url="https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/" vendor="LVGL" name="lvgl" version="1.0.6"/>
<pdsc url="https://raw.githubusercontent.com/lvgl/lvgl/release/v8.3/env_support/cmsis-pack/" vendor="LVGL" name="lvgl" version="8.3.11"/>
</pindex>
</index>

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