Expand description
appit
An opinionated wrapper for winit
that provides a trait-based, multi-threaded
approach to implementing multi-window applications.
This crate’s main type is WindowBehavior
, a trait that provides functions for
nearly every winit::event::WindowEvent
. This allows you to implement exactly
which events you wish to respond to, and ignore the rest without a large match
statement.
This crate also keeps track of the redraw state of the window, and allows scheduling redraws in the future.
use appit::WindowBehavior;
struct MyWindow;
impl WindowBehavior for MyWindow {
type Context = ();
fn initialize(_window: &mut appit::RunningWindow, _context: Self::Context) -> Self {
Self
}
fn redraw(&mut self, window: &mut appit::RunningWindow) {
println!("Should redraw");
}
}
fn main() {
MyWindow::run()
}
Project Status
This project is early in development as part of Kludgine and Cushy. It is considered alpha and unsupported at this time, and the primary focus for @ecton is to use this for his own projects. Feature requests and bug fixes will be prioritized based on @ecton’s own needs.
If you would like to contribute, bug fixes are always appreciated. Before working on a new feature, please open an issue proposing the feature and problem it aims to solve. Doing so will help prevent friction in merging pull requests, as it ensures changes fit the vision the maintainers have for Cushy.
Re-exports
pub use winit;
Structs
- A reference to a multi-window application.
- An application that is not yet running.
- A window that is running in its own thread.
- A weak reference to a running window.
- Attributes of a desktop window.
- A builder for a window.
- A collection of open windows.
Traits
- A type that has a handle to the application thread.
- A type that contains a reference to an
Application
implementor. - A message with an associated response type.
- The behavior that drives the contents of a window.