-
-
Notifications
You must be signed in to change notification settings - Fork 3.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
v8.2 discussion #2790
Comments
The initial list and the features ideas are not written into stone, please tell what you think about them. Fix/Release scriptsIMO it has the highest priority. I meant these:
Widgets to image bufferMake possible to buffer widgets with all children into a single image to
ScenesIt's a brand new concept about how a UI can be managed. It's a very simple but very powerful thing. Each widget has an Use cases:
The gist is, this way the widgets encapsulate their scenes and there is a uniform API for changing scenes. As the current scene is saved it can be automatically unloaded. Without this feature, the user needed to keep track of the current state to know what to unload, but now it'd be backed into the widgets. Add/Subtract/exclusive mask typesNow the masks of LVGL can only subtract from an 0xff filled mask. It'd be great to allow "building back" parts too. Style componentsRight now it's a little bit cumbersome to manage differently looking versions of the same widget type. E.g. button, error button, warning button, border only button, border only error button, rounded button, rounded error button, etc. To manage it effectively there should be uint32_t ERROR_BTN_ROUNDED = lv_component_create_from(LV_COMPONENT_BTN);
lv_component_add_style(ERROR_BTN_ROUNDED, &error_btn_style, LV_PART_MAIN);
lv_component_add_style(ERROR_BTN_ROUNDED, &rounded_btn_style, LV_PART_MAIN);
lv_obj_t * btn = lv_btn_create(parent);
lv_obj_set_component_type(btn, ERROR_BTN_ROUNDED);
The implementation is quite simple: If functions like Overflow:visibleSame as in HTML HoverSame as in HTML More grid featuresI'm specifically thinking about SVG support |
@kisvegabor I've created a new issue #2800. Could it be added in this version? |
Modify qrCode lv_qrcode_delete() interface, replace it with lv_obj_del().In other words, rewrite Qrcode using obj template. |
@lishaoenxm @guoweilkd It's quite straightforward, so I've just updated the qr code widget. See 318edd8 |
Sorry for the delay in replying here. Here are my thoughts:
I think it might be safer to check for the word "backport" in the commit description, otherwise the CI will end up cherry-picking fixes for a v8.2 feature into the v8.0 and v8.1 branches, which is not what we want.
Are we moving
It seems to me that all that is needed here is a way of linking styles to a parent style. This is what I'm envisioning: static lv_style_t btn, btn_rounded, btn_warning, btn_error;
static lv_style_t error_btn_component;
lv_style_init(&error_btn_component);
lv_style_add_child(&error_btn_component, &btn_rounded);
lv_style_add_child(&error_btn_component, &btn_error); Now |
No problem 🙂
True, although it can happen that the part being fixed already changed in v8.2. But, I agree "backport" is safer and probably will result in fewer issues.
I think we should.
As styles don't store |
How hard could it be to add this feature? I'm interested in helping out with this one. Should we also consider gray scale support?
I'm also working on this, we had a couple of really busy weeks at work, I'm continuing with the new drivers architecture next weekend. |
I suggest waiting a little with it. We started to work on abstracting the drawing enginesand therefore the all drawing parts will be hugely refactored and rewritten. So it should be added once the architecture is stabilized to avoid complicated merging.
Awesome! It might be also related to the abstraction of drawing. See #2803 (comment) |
Sounds fair, I will focus on the drivers. |
IMO this looks like mixture of CSS cascading & transforms animation. I would implement more classic features instead of invent new ones.
I don't understand the problem. https://getbootstrap.com/docs/5.1/components/buttons/ twbs is ok with mixins. If you need syntax sugar - leave it to CPP wrapper, instead of balloon C api. It's normal to add multiple styles (modifiers) to widget.
That's very expensive thing & not available on touch interfaces. IMO added value does not worth efforts. I'd suggest to postpone that as much as possible.
IMO that's standalone project, described as "GUI creator tool with code generator". I'm skeptic about inventig/promoting new languages. Sugar can be partially solved via CPP wrapper. And visual gui builder is usually faster to create with js/html (electron and other). Anyway, i'd prefer this thing separate from lvgl core. It may take too much efforts and slow down other development. Also, it would be nice to temporary pause with adding new features & focus on pending tails - true RGBA support in styles, benchmarks infrastructure, CPP wrapper and so on. |
It's more than that and it's new only in LVGL. It's inspired by QT. See here.
It's possible but not convenient. E.g. a React button component is much more powerful where the component's style and logic are encapsulated into one object. My suggestion is not about logic only styles though.
The problem came up while I was working on several UI projects. It's just tedious to manage styles as they are now. And if it was inconvenient for me, I suppose it's problematic for others too. Of course, the idea can be polished, I just wanted to raise the topic and a possible implementation direction.
I'm personally interested in it because we are planning to support desktop app development too with EdgeLine so, it will come in handy. It needs to be designed in a way to not be expensive. 🙂
I consider having a markup language very important. I can't mention exact use cases due to NDAs but the need for a platform independent textual UI description came from many sources. It's will also help to find illogical parts in LVGL's UI, and clean it up as much as possible.
RGBA, would be also a new feature. 🙂 I don't consider this as high priority task as it just joins to properties into one (color+opa). Cpp wrapper is on its way, but the development slowed down a little in the past month. |
Let's discuss the topic of managing old & new releases. I think what we are thinking of right now (assuming 8.2 is the next release) is the following:
@kisvegabor You and I had discussed before the idea of requiring every commit to This could work for automating backporting as well, as I could make an action which tries to backport to a specific branch when someone with appropriate privileges writes a comment like "@lvgl-bot backport v8.0" in the PR. However, it means that every commit (including simple ones like these) would need a PR opened. I suppose it would ensure that CI passes on |
Meanwhile, I was thinking about if it's really worse the effort to establish a complex backporting system. After v8.0 was released I manually backported some fixes but not that much. As I haven't heard complaints about bugs in v8.0. What if we say that if someone reports a problem in v8.0 (or an older release) we manually fix that problem. Seemingly there won't be too many cases. We can find a proper solution if there is a real need for massive backporting (maybe never 🙂 ) What do you think? |
True. The majority of the backporting only tends to be needed across major version boundaries, because a decent majority of users will upgrade to the latest 8.x release if asked. |
Great! :) The question of a good release script is still open. I've tried to do it for v7 but wasn't confident with it at all. I always run the Python script with a debugger because it always has some problems... For v8 IMO the requirements are:
|
Is it possible to merge lv_demos into lvgl git too? The demo is very useful to verify the porting and performance. |
With this, the repo structure would be very clear. My only concern is that it'd significantly increase the repo size due to the many assets. |
Yes, but compare with today's disk capacity and network bandwidth, most developer will more enjoy the convenience.:) |
I agree. This way LVGL core, 3rd party lib, example, demo, and driver would be in one place. As part of the CI tests, we could easily un the stress demo for a while too. |
Is that possable to add |
Could we rather integrate the faster versions into LVGL? 😄 Can you give a link to your implementation? |
Yes. of course, this is one of the RT-Thread software packages. It's for Cortex-M. But I didn't translate the readme to English yet. 😅https://github.com/mysterywolf/rt_memcpy_cm |
No problem, Google Translate kindly translated it 🙂
Do you still have this test environment? If so could you try LVGL's memcpy? |
I retest under GCC Keil and IAR, and here is the result:😄 copy 10,000 bytes for 100,000 times (@STM32L745)
|
@mysterywolf - Why would you do any performance measurement with |
To test the worst case. I want to measure the performance of different memcpy version without compiler's help. I will test the -O2 case if you want. |
Comparing performance with |
Done. Here is the -O2 result.
|
@amirgon @mysterywolf Thanks for these measurements.
In general |
I'm on it. 🙂 I'll try my best to review it tomorrow. Cmake and RT-Thread are moved to @brgl |
@kisvegabor cmsis-pack is moved to env_support as planned. |
@kisvegabor it is close to the end of Jan. When do we release the 8.2.0? |
@GorgonMeducer |
@kisvegabor OK, then I can release cmsis-pack v1.0.0 after Monday. |
If you tell me what to steps are required I can ensure to have cmsis-pack v1.0.0 included in LVGL v8.2 release (and not created after it).
Do you mean here? If so, of course, it'd be more than amazing to list LVGL on ARMs site 🙂 Is there anything I/we shall do to have LVGL listed? |
@kisvegabor If we want to include the cmsis-pack as part of the v8.2.0 release, please tell me when is the "last minute" to generate a cmsis-pack.
Big YES and also inside pack-installer. The only thing LVGL has to do is make sure don't change the location of LVGL.lvgl.pdsc once LVGL is listed. So if you want to change the location, do it now before I make the listing request to the KEIL team. |
Amazing!
Seems doable. 🙂 |
@kisvegabor If you have no objection, this version of the lvgl cmsis pack will be listed on the Arm website. |
Amazing, thank you! I merge it and start to to prepare the release now.
Perfect! |
v8.2 is released! @embeddedt I forgot that what shall we do to add v8.2. to the drop-down in the docs? @tore-espressif There was an API token issue while pushing to the ESP component repo. Do you know how shall we fix it? |
@kisvegabor This is all that should be needed, for future reference: lvgl/docs@9c54a49 |
In September 2021 I send you an API token that should be added to secrets of this repo under name |
I see the secret in the list so I'll rerun the workflow. |
@tore-espressif It still failed, but there is definitely a secret named |
@embeddedt thanks for quick response. From https://github.com/lvgl/lvgl/runs/5006767183?check_suite_focus=true#step:4:5 it seems that for some reason the Anyway, I'm sending @kisvegabor new token to his email. |
The ESP component issue is resolved, due the support from @tore-espressif. Thank you% 🙂 |
Amazing, thank you very much! I've shared it on LinkedIn. |
This issue is stale because it has been open 14 days with no activity. Remove stale label or comment or this will be closed in 7 days. |
As v8.2 is released I close this issue will open a new one for v8.3 soon. |
Hi, it's normal that the lib on PlatformIO is still at 8.1 ? https://registry.platformio.org/libraries/lvgl/lvgl/versions |
Hi, I've just updated it. Should be available soon. |
v8.1 is released so I open this issue to plan v8.2. In order really have a "Planning phase" for the next release I'm about to leave this issue open until 31 December and focus on implementation after that.
I add my current ideas here (see explanation in the next comment), please comment if you also have some features ideas in mind or share your opinion about the planned features.
Rendering
Features
Add/Subtract/exclusive mask types arc obj:color display error when color opa was used #2668(postponed for the next release)Others
The text was updated successfully, but these errors were encountered: