@@ -23,10 +23,7 @@ use event::window::Size;
23
23
use current:: { Set , Get } ;
24
24
25
25
use sdl2_window:: Sdl2Window ;
26
- use gfx:: { Device , DeviceHelper } ;
27
- use gfx_graphics:: {
28
- G2D ,
29
- } ;
26
+ use opengl_graphics:: Gl ;
30
27
31
28
use engine:: ConwayEngine ;
32
29
use world:: World ;
@@ -54,6 +51,8 @@ fn main() {
54
51
samples : 0
55
52
}
56
53
) ;
54
+
55
+ let ref mut gl = Gl :: new ( opengl) ;
57
56
let mut view = ViewPort { offx : 0.0 , offy : 0.0 , scale : 10.0 } ;
58
57
59
58
let mut world = world:: HashWorld :: new ( ) ;
@@ -66,17 +65,6 @@ fn main() {
66
65
67
66
let mut engine = engine:: GrifLife :: new ( box world) ;
68
67
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
-
80
68
let mut draw = false ;
81
69
let mut run = false ;
82
70
//number of generations per second, cannot exceed updates_per_second
@@ -86,19 +74,20 @@ fn main() {
86
74
let mut move_scr = false ;
87
75
for e in Events :: new ( & RefCell :: new ( window) ) . set ( Ups ( 120 ) ) . set ( MaxFps ( 60 ) ) {
88
76
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) ;
98
89
}
99
- } ) ;
100
- device. submit ( renderer. as_buffer ( ) ) ;
101
- renderer. reset ( ) ;
90
+ }
102
91
} ) ;
103
92
104
93
e. press ( |button| {
0 commit comments