@@ -20,7 +20,7 @@ use pathfinder_renderer::gpu::renderer::Renderer;
2020use pathfinder_renderer:: options:: BuildOptions ;
2121use pathfinder_resources:: ResourceLoader ;
2222use pathfinder_resources:: fs:: FilesystemResourceLoader ;
23- use sdl2:: event:: Event ;
23+ use sdl2:: event:: { Event , WindowEvent } ;
2424use sdl2:: keyboard:: Keycode ;
2525use sdl2:: video:: GLProfile ;
2626use std:: iter;
@@ -64,28 +64,29 @@ fn main() {
6464 let font = Handle :: from_memory ( font_data, 0 ) ;
6565 let font_context = CanvasFontContext :: from_fonts ( iter:: once ( font) ) ;
6666
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-
8467 // Wait for a keypress.
8568 let mut event_pump = sdl_context. event_pump ( ) . unwrap ( ) ;
8669 loop {
8770 match event_pump. wait_event ( ) {
8871 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+ } ,
8990 _ => { }
9091 }
9192 }
0 commit comments