Skip to content

Winit 0.31 draft - #7731

Draft
lucasmerlin wants to merge 2 commits into
mainfrom
lucas/winit-0.31
Draft

Winit 0.31 draft#7731
lucasmerlin wants to merge 2 commits into
mainfrom
lucas/winit-0.31

Conversation

@lucasmerlin

@lucasmerlin lucasmerlin commented Nov 19, 2025

Copy link
Copy Markdown
Collaborator

I was curious how much work the winit update would be, so I tried getting hello world simple to run.
It doesn't run yet but I got it to compile. Looks like this will be a lot of effort to get perfect. (Maybe time to remove the glow backend since the two backends add a lot of complexity?).

I commented a ton of code to try to get something to compile, so this will need a lot more work. Opening this mostly in case someone wants to pick up the work or discuss how we should do things.

@github-actions

Copy link
Copy Markdown

Preview is being built...

Preview will be available at https://egui-pr-preview.github.io/pr/7731-lucas/winit-0.31

View snapshot changes at kitdiff

@lucasmerlin lucasmerlin changed the title winit 0.31 update Winit 0.31 draft Nov 19, 2025
@nicoburns

Copy link
Copy Markdown
Contributor

Blitz main has now upgraded to Winit 0.31. The PR that we merged is here: DioxusLabs/blitz#323, but that includes adding support for Android and iOS as well. PR with only Winit-related changes is (but not quite all of the changes we finally applied) is here DioxusLabs/blitz#298

Some notes:

  • We replaced the "UserEvent" functionality with a channel (std::mpsc). The architecture doesn't change much here. It just uses a custom channel that's read on the "proxy wake up" event rather than having Winit manage the channel.
  • I've published https://docs.rs/accesskit_xplat which is a fork of accesskit_winit without depending on Winit (so it can be used with any Winit version).
  • Other than that it was mostly just renaming things and adding dyn in a bunch of places.

@Eclextic

Copy link
Copy Markdown

I was curious how much work the winit update would be, so I tried getting hello world simple to run. It doesn't run yet but I got it to compile. Looks like this will be a lot of effort to get perfect. (Maybe time to remove the glow backend since the two backends add a lot of complexity?).

I commented a ton of code to try to get something to compile, so this will need a lot more work. Opening this mostly in case someone wants to pick up the work or discuss how we should do things.

If I may ask. What exactly is missing/not working? I need this for an app I am trying to develop that depends on Stylus support, so I might just do the work myself for updating egui to the newest version. Issue just becomes: How will other PRs look like?

Is a PR freeze being done?

@Eclextic

Copy link
Copy Markdown

Hm actually, looking at your PR now, it seems like the majority of problems lie basically down to the fact, that the winit beta just hasn't been implemented yet anywhere in the dependency chain and this looks to actually have to take multiple months before everyone else has caught up...

I'll switch to SDL for now. I don't think winit is the right solution xd

@lucasmerlin

Copy link
Copy Markdown
Collaborator Author

Hm actually, looking at your PR now, it seems like the majority of problems lie basically down to the fact, that the winit beta just hasn't been implemented yet anywhere in the dependency chain and this looks to actually have to take multiple months before everyone else has caught up...

I'll switch to SDL for now. I don't think winit is the right solution xd

Yeah, we need a proper winit release so that the ecosystem can actually update

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants