The goal of this proposal is to make it Rust safe for users to render on a different thread then the window with the same API cross-platform.
Blockers are:
- Windows: handle is not
!Send and is unable to be created safely on a different thread.
- Web: due to JS limitations a surface can only be created on a different thread and can never be sent to one.
- MacOS/iOS: the surface has to be created on the same thread as the window (i.e. the main thread).
To make this truly cross-platform, Web is the limiting factor: not being able to send the surface to a different thread.
To address this we:
The goal of this proposal is to make it Rust safe for users to render on a different thread then the window with the same API cross-platform.
Blockers are:
!Sendand is unable to be created safely on a different thread.To make this truly cross-platform, Web is the limiting factor: not being able to send the surface to a different thread.
To address this we:
Send + Sync#196.libdispatchto create the surface on a different thread.