Conversation
notgull
left a comment
There was a problem hiding this comment.
Thanks for the PR! Two things:
raw_window_handleis intended to be a common types crate to be used by higher-level crates, rather than something that implements functionality on its own. So I would rather have it represent aHandleas aNonNull<T>since it's a raw pointer.- From a quick glance at the docs, it seems that
GraphicsOutputhas a framebuffer of its own. So I think it would be better ifGraphicsOutputwas a property of theWindowHandlerather than theDisplayHandle.
The framebuffer is only available when the Graphics Output Protocol implements a framebuffer mode. Otherwise, you have to use blit mode. |
|
Still, you draw to the |
|
I'm not sure what you mean. When drawing in UEFI, you use a temporary buffer which you render to. Then whenever you present, you copy from that buffer to the memory mapped one if it is available. Otherwise, you use the blit function in the protocol. If the memory mapped buffer is not available, that means the GPU just doesn't give the ability for direct screen access. I was wanting to use this with something like iced and have it like a compositor. Have multiple windows which get drawn and be able to manipulate them. At least in this crate and softbuffer, it shouldn't be anything special to make that possible. |
ebc69d4 to
3187a00
Compare
d736e88 to
a580921
Compare
a580921 to
e7ba947
Compare
| /// The UEFI Graphics Output Protocol handle. | ||
| /// | ||
| /// From the UEFI spec on <https://uefi.org>, can be found in versions since 2.0 as | ||
| /// `EFI_GRAPHICS_OUTPUT_PROTOCOL`. |
There was a problem hiding this comment.
| /// `EFI_GRAPHICS_OUTPUT_PROTOCOL`. | |
| /// [`EFI_GRAPHICS_OUTPUT_PROTOCOL`]. | |
| /// | |
| /// [`EFI_GRAPHICS_OUTPUT_PROTOCOL`]: https://uefi.org/specs/UEFI/2.10/12_Protocols_Console_Support.html#efi-graphics-output-protocol |
Right?
There was a problem hiding this comment.
I'm not sure, idk the format of rust's doc comment that much.
|
Wrt. having it on Unless there's something else in UEFI that more closely corresponds to a drawable surface? |
|
Re-reading the docs for
Which seems to indicate that perhaps display handles are better thought of as "connection handle" (they don't actually correspond to a physical "display"/monitor). Idk., the analogies break down somewhat at this point. Maybe the best approach is to consider how things will be used? Maybe you could expand on how you produce this handle for |
|
Yeah, the So you could interpret this as a
|
|
This is blocked on rust-windowing/softbuffer#282 (review) (I'm still not convinced that this is better represented as a window/"surface" handles). |
No description provided.