70 lines
1.5 KiB
Rust
70 lines
1.5 KiB
Rust
extern crate glutin_window;
|
|
extern crate graphics;
|
|
extern crate opengl_graphics;
|
|
extern crate piston;
|
|
|
|
use glutin_window::GlutinWindow as Window;
|
|
use opengl_graphics::{GlGraphics, OpenGL};
|
|
use piston::event_loop::{EventSettings, Events};
|
|
use piston::input::{RenderArgs, RenderEvent, UpdateArgs, UpdateEvent};
|
|
use piston::window::WindowSettings;
|
|
|
|
pub struct App {
|
|
gl: GlGraphics,
|
|
steps_per_sec: u32,
|
|
}
|
|
|
|
impl App {
|
|
fn render (&mut self, args: &RenderArgs) {
|
|
use graphics::*;
|
|
|
|
const BLACK: [f32; 4] = [0.0, 0.0, 0.0, 1.0];
|
|
|
|
self.gl.draw(args.viewport(), |c, gl| {
|
|
// Clear the screen.
|
|
clear(BLACK, gl);
|
|
});
|
|
}
|
|
|
|
fn update(&mut self, args: &UpdateArgs) {
|
|
|
|
}
|
|
}
|
|
|
|
fn main() {
|
|
// Make window
|
|
|
|
// Change this to OpenGL::V2_1 if not working.
|
|
let opengl = OpenGL::V3_2;
|
|
|
|
// Create an Glutin window.
|
|
let mut window: Window = WindowSettings::new("spinning-square", [800, 800])
|
|
.graphics_api(opengl)
|
|
.exit_on_esc(true)
|
|
.build()
|
|
.unwrap();
|
|
|
|
let mut app = App {
|
|
gl: GlGraphics::new(opengl),
|
|
steps_per_sec: 2,
|
|
};
|
|
|
|
let mut events = Events::new(EventSettings::new());
|
|
|
|
// Make grid
|
|
|
|
// Quick life engine -> redraw
|
|
|
|
let mut events = Events::new(EventSettings::new());
|
|
while let Some(e) = events.next(&mut window) {
|
|
if let Some(args) = e.render_args() {
|
|
app.render(&args);
|
|
}
|
|
|
|
if let Some(args) = e.update_args() {
|
|
app.update(&args);
|
|
}
|
|
}
|
|
|
|
}
|