-
Notifications
You must be signed in to change notification settings - Fork 675
examples: Add uefi-demo #2509
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
examples: Add uefi-demo #2509
Conversation
Wow! This is really really cool. ❤️ The code looks very clean, too. We'd love to take this in - it's a great show-case :) One open question in that regard is the licensing. I see two options (but perhaps there are more):
What do you think? |
CI fails because it's testing rust 1.66, while the UEFI target was stabilized in 1.68. Also, I believe the CI isn't compiling the crate for the x86_64-unknown-uefi target. I'm not sure how to proceed here. |
We can change the CI scripts to |
Btw, feel free to ask any question on the UEFI side of things. Some thoughts I had while working on this:
|
Thanks for the feedback.
The goal is to un-seal it in the future. We just wanted to have the MVP to work on the MCU to be stable. We still have some work to polish the remaining API.
MinimalSoftwareWindow is meant to be used in a fullscreen mode without window managers. So there is no concept of hiding and closing without a WM. Is there a concept of window in UEFI?
Could you elaborate? EventLoopProxy must be Send between threads. But the Platform itself is not Send and need to stay in the UI thread.
True, you need to create a callback that call
One concept we have is that each Element is "visual" and has a geometry and stuff. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you!
If a Window element could hide/close itself from within slint it would allow for easy ways to implement exiting the main loop without going through EvenLoopProxy. In fact, right now you cannot even do so with native code as MinimalSoftwareWindow hardcodes its visibilty to false.
Doing a (safety) countdown is not business logic. ("Are you sure you want to proceed nuking everything from orbit? Nuking in 10s…") |
This is cool, I've actually done a similar thing here: https://gitlab.com/K900/bootloader Maybe we should try and build a generic UEFI platform implementation as a crate? |
This is the UEFI port I wrote some time ago to explorer no_std support in slint. It works fairly well and might be useful to others.
Easy to test with:
In theory, i686 and aarch64 are also supported. In practice there are some rust bugs in the way (rust-lang/rust#62729, rust-lang/rust#98254).