piston_window
                                
                                 piston_window copied to clipboard
                                
                                    piston_window copied to clipboard
                            
                            
                            
                        The official Piston convenience window wrapper for the Piston game engine
piston_window  
  
 
The official Piston convenience window wrapper for the Piston game engine
Notice! If this is your first time visiting Piston, start here.
Piston-Window is designed for only one purpose: Convenience.
- Reexports everything you need to write 2D interactive applications
- .draw_2dfor drawing 2D, and- .draw_3dfor drawing 3D
- Uses Gfx to work with 3D libraries in the Piston ecosystem
extern crate piston_window;
use piston_window::*;
fn main() {
    let mut window: PistonWindow = WindowSettings::new("Hello Piston!", (640, 480))
        .exit_on_esc(true)
        .build()
        .unwrap_or_else(|e| { panic!("Failed to build PistonWindow: {}", e) });
    while let Some(e) = window.next() {
        window.draw_2d(&e, |_c, g, _d| {
            clear([0.5, 1.0, 0.5, 1.0], g);
        });
    }
}
PistonWindow uses Glutin as window back-end by default,
but you can change to another back-end, for example SDL2 or GLFW by changing the type parameter:
let mut window: PistonWindow<Sdl2Window> = WindowSettings::new("Hello Piston!", [640, 480])
    .exit_on_esc(true).build().unwrap();
PistonWindow implements AdvancedWindow, Window and EventLoop.
Nested game loops are supported, so you can have one inside another.
while let Some(e) = window.next() {
    if let Some(button) = e.press_args() {
        // Intro.
        while let Some(e) = window.next() {
            ...
        }
    }
}
Ideas or feedback? Open up an issue here.
Dependency graph
