@@ -20,7 +20,7 @@ use pathfinder_renderer::gpu::renderer::Renderer;
20
20
use pathfinder_renderer:: options:: BuildOptions ;
21
21
use pathfinder_resources:: ResourceLoader ;
22
22
use pathfinder_resources:: fs:: FilesystemResourceLoader ;
23
- use sdl2:: event:: Event ;
23
+ use sdl2:: event:: { Event , WindowEvent } ;
24
24
use sdl2:: keyboard:: Keycode ;
25
25
use sdl2:: video:: GLProfile ;
26
26
use std:: iter;
@@ -64,28 +64,29 @@ fn main() {
64
64
let font = Handle :: from_memory ( font_data, 0 ) ;
65
65
let font_context = CanvasFontContext :: from_fonts ( iter:: once ( font) ) ;
66
66
67
- // Make a canvas.
68
- let mut canvas = Canvas :: new ( window_size. to_f32 ( ) ) . get_context_2d ( font_context) ;
69
-
70
- // Draw the text.
71
- canvas. set_font ( "Overpass-Regular" ) ;
72
- canvas. set_font_size ( 32.0 ) ;
73
- canvas. fill_text ( "Hello Pathfinder!" , vec2f ( 32.0 , 48.0 ) ) ;
74
- canvas. set_text_align ( TextAlign :: Right ) ;
75
- canvas. stroke_text ( "Goodbye Pathfinder!" , vec2f ( 608.0 , 464.0 ) ) ;
76
-
77
- // Render the canvas to screen.
78
- let mut scene = SceneProxy :: from_scene ( canvas. into_canvas ( ) . into_scene ( ) ,
79
- renderer. mode ( ) . level ,
80
- RayonExecutor ) ;
81
- scene. build_and_render ( & mut renderer, BuildOptions :: default ( ) ) ;
82
- window. gl_swap_window ( ) ;
83
-
84
67
// Wait for a keypress.
85
68
let mut event_pump = sdl_context. event_pump ( ) . unwrap ( ) ;
86
69
loop {
87
70
match event_pump. wait_event ( ) {
88
71
Event :: Quit { ..} | Event :: KeyDown { keycode : Some ( Keycode :: Escape ) , .. } => return ,
72
+ Event :: Window { win_event : WindowEvent :: Exposed , .. } => {
73
+ // Make a canvas.
74
+ let mut canvas = Canvas :: new ( window_size. to_f32 ( ) ) . get_context_2d ( font_context. clone ( ) ) ;
75
+
76
+ // Draw the text.
77
+ canvas. set_font ( "Overpass-Regular" ) ;
78
+ canvas. set_font_size ( 32.0 ) ;
79
+ canvas. fill_text ( "Hello Pathfinder!" , vec2f ( 32.0 , 48.0 ) ) ;
80
+ canvas. set_text_align ( TextAlign :: Right ) ;
81
+ canvas. stroke_text ( "Goodbye Pathfinder!" , vec2f ( 608.0 , 464.0 ) ) ;
82
+
83
+ // Render the canvas to screen.
84
+ let mut scene = SceneProxy :: from_scene ( canvas. into_canvas ( ) . into_scene ( ) ,
85
+ renderer. mode ( ) . level ,
86
+ RayonExecutor ) ;
87
+ scene. build_and_render ( & mut renderer, BuildOptions :: default ( ) ) ;
88
+ window. gl_swap_window ( ) ;
89
+ } ,
89
90
_ => { }
90
91
}
91
92
}
0 commit comments