Skip to content

Commit d64ef1e

Browse files
author
Daniel Griffen
committed
Update for latest rust, also remove dependency on gfx-rs
1 parent 1826893 commit d64ef1e

File tree

2 files changed

+42
-54
lines changed

2 files changed

+42
-54
lines changed

Cargo.lock

Lines changed: 26 additions & 27 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/main.rs

Lines changed: 16 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,7 @@ use event::window::Size;
2323
use current::{Set, Get};
2424

2525
use sdl2_window::Sdl2Window;
26-
use gfx::{Device, DeviceHelper};
27-
use gfx_graphics::{
28-
G2D,
29-
};
26+
use opengl_graphics::Gl;
3027

3128
use engine::ConwayEngine;
3229
use world::World;
@@ -54,6 +51,8 @@ fn main() {
5451
samples: 0
5552
}
5653
);
54+
55+
let ref mut gl = Gl::new(opengl);
5756
let mut view = ViewPort {offx: 0.0, offy: 0.0, scale: 10.0};
5857

5958
let mut world = world::HashWorld::new();
@@ -66,17 +65,6 @@ fn main() {
6665

6766
let mut engine = engine::GrifLife::new(box world);
6867

69-
let mut device = gfx::GlDevice::new(|s| unsafe {
70-
std::mem::transmute(sdl2::video::gl_get_proc_address(s))
71-
});
72-
let Size([w,h]) = window.get();
73-
//let w = size[0];
74-
//let h = size[1];
75-
let frame = gfx::Frame::new(w as u16, h as u16);
76-
let mut renderer = device.create_renderer();
77-
78-
let mut g2d = G2D::new(&mut device);
79-
8068
let mut draw = false;
8169
let mut run = false;
8270
//number of generations per second, cannot exceed updates_per_second
@@ -86,19 +74,20 @@ fn main() {
8674
let mut move_scr = false;
8775
for e in Events::new(&RefCell::new(window)).set(Ups(120)).set(MaxFps(60)) {
8876
use event::{ RenderEvent, MouseCursorEvent, MouseRelativeEvent, MouseScrollEvent, PressEvent, ReleaseEvent, UpdateEvent};
89-
e.render(|_| {
90-
g2d.draw(&mut renderer, &frame, |c, g| {
91-
use graphics::*;
92-
c.rgb(1.0, 1.0, 1.0).draw(g);
93-
for (location, cell) in engine.world_ref().iter() {
94-
let (state, (x, y)) = (*cell, *location);
95-
if state == cell::State::Alive {
96-
c.rect(x as f64 * view.scale - view.offx, y as f64 * view.scale - view.offy, view.scale, view.scale).rgb(1.0, 0.0, 0.0).draw(g);
97-
}
77+
e.render(|args| {
78+
use graphics::*;
79+
80+
gl.viewport(0, 0, args.width as i32, args.height as i32);
81+
82+
let c = Context::abs(args.width as f64, args.height as f64);
83+
c.rgb(1.0, 1.0, 1.0).draw(gl);
84+
85+
for (location, cell) in engine.world_ref().iter() {
86+
let (state, (x, y)) = (*cell, *location);
87+
if state == cell::State::Alive {
88+
c.rect(x as f64 * view.scale - view.offx, y as f64 * view.scale - view.offy, view.scale, view.scale).rgb(1.0, 0.0, 0.0).draw(gl);
9889
}
99-
});
100-
device.submit(renderer.as_buffer());
101-
renderer.reset();
90+
}
10291
});
10392

10493
e.press(|button| {

0 commit comments

Comments
 (0)