-
Notifications
You must be signed in to change notification settings - Fork 927
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
Occluded
change must be synced with winit
#3442
Comments
Change in state requires a redraw, however drawing when getting `Occluded` with vsync will block indefinitely, thus the event in it's current state is rather useless. To solve this issue winit needs a way to determine whether the user paused/continued their render loop, so it can commit on their behalf. This commit also forces redraw when getting configure. Links: #3442
Change in state requires a redraw, however drawing when getting `Occluded` with vsync will block indefinitely, thus the event in it's current state is rather useless. To solve this issue winit needs a way to determine whether the user paused/continued their render loop, so it can commit on their behalf. This commit also forces redraw when getting configure. Links: #3442
Change in state requires a redraw, however drawing when getting `Occluded` with vsync will block indefinitely, thus the event in it's current state is rather useless. To solve this issue winit needs a way to determine whether the user paused/continued their render loop, so it can commit on their behalf. This commit also forces redraw when getting configure. Links: rust-windowing#3442
Change in state requires a redraw, however drawing when getting `Occluded` with vsync will block indefinitely, thus the event in it's current state is rather useless. To solve this issue winit needs a way to determine whether the user paused/continued their render loop, so it can commit on their behalf. This commit also forces redraw when getting configure. Links: #3442
Reasonably sure that this is not possible because any WSI takes exclusive ownership of this. Only the WSI may call commit. |
It's possible if you communicate correctly, wsi can not commit on its own either, you have to call into present function, and if you indicate such a change with a callback you can certainly do so on behalf of the user, because they indicated that they won't commit.. |
State change on Wayland, demands confirmation in form of
ack
+commit
,commit
usually done when drawing, however when usingVsync
extension drawing will block indefinitely when you'll haveOccluded
event.To solve that winit must have a way to
commit
on-behalf of the users, however doing so unconditionally will break clients and may result in desyncs, but asking them to draw and then sendOccluded
is also not an option, thusOccluded
itself should ask whether the user stopped their rendering/continued their rendering, thus on stop winit can dowl_surface::commit
.This issue is also kind of present with other state changes, and not really specific to occluded, however occluded is the only where it really matters.
Until it's resolved it winit will remove the handling of this event.
The text was updated successfully, but these errors were encountered: