@@ -31,14 +31,24 @@ fn main() {
31
31
elwt. set_control_flow ( ControlFlow :: Poll ) ;
32
32
33
33
match event {
34
+ Event :: WindowEvent {
35
+ window_id,
36
+ event : WindowEvent :: Resized ( size) ,
37
+ } if window_id == window. id ( ) => {
38
+ if let ( Some ( width) , Some ( height) ) =
39
+ ( NonZeroU32 :: new ( size. width ) , NonZeroU32 :: new ( size. height ) )
40
+ {
41
+ surface. resize ( width, height) . unwrap ( ) ;
42
+ }
43
+ }
34
44
Event :: WindowEvent {
35
45
window_id,
36
46
event : WindowEvent :: RedrawRequested ,
37
47
} if window_id == window. id ( ) => {
38
- if let ( Some ( width ) , Some ( height ) ) = {
39
- let size = window . inner_size ( ) ;
48
+ let size = window . inner_size ( ) ;
49
+ if let ( Some ( width ) , Some ( height ) ) =
40
50
( NonZeroU32 :: new ( size. width ) , NonZeroU32 :: new ( size. height ) )
41
- } {
51
+ {
42
52
let elapsed = start. elapsed ( ) . as_secs_f64 ( ) % 1.0 ;
43
53
44
54
if ( width. get ( ) , height. get ( ) ) != * old_size {
@@ -48,7 +58,6 @@ fn main() {
48
58
49
59
let frame = & frames[ ( ( elapsed * 60.0 ) . round ( ) as usize ) . clamp ( 0 , 59 ) ] ;
50
60
51
- surface. resize ( width, height) . unwrap ( ) ;
52
61
let mut buffer = surface. buffer_mut ( ) . unwrap ( ) ;
53
62
buffer. copy_from_slice ( frame) ;
54
63
buffer. present ( ) . unwrap ( ) ;
0 commit comments