toml
[dependencies]
winit = "0.20.0-alpha1"
Join us in any of these:
Winit is a window creation and management library. It can create windows and lets you handle events (for example: the window being resized, a key being pressed, a mouse movement, etc.) produced by window.
Winit is designed to be a low-level brick in a hierarchy of libraries. Consequently, in order to show something on the window you need to use the platform-specific getters provided by winit, or another library.
```rust use winit::{ event::{Event, WindowEvent}, event_loop::{ControlFlow, EventLoop}, window::WindowBuilder, };
fn main() { let eventloop = EventLoop::new(); let window = WindowBuilder::new().build(&eventloop).unwrap();
event_loop.run(move |event, _, control_flow| {
match event {
Event::WindowEvent {
event: WindowEvent::CloseRequested,
window_id,
} if window_id == window.id() => *control_flow = ControlFlow::Exit,
_ => *control_flow = ControlFlow::Wait,
}
});
} ```
Winit is only officially supported on the latest stable version of the Rust compiler.
Winit provides the following features, which can be enabled in your Cargo.toml
file:
* serde
: Enables serialization/deserialization of certain types with Serde.
Building a binary will yield a .js
file. In order to use it in an HTML file, you need to:
<canvas id="my_id"></canvas>
element somewhere. A canvas corresponds to a winit "window".Module
. Set Module.canvas
to
the element of the <canvas>
element (in the example you would retrieve it via document.getElementById("my_id")
).
More information here..js
file generated by Rust after the Module
variable is created.