@@ -39,8 +39,6 @@ fn generate_buffer(
3939 dim : WindowDimensions ,
4040 offset : Complex ,
4141) {
42- let max_pixel = dim. width * dim. height - 1 ;
43-
4442 let buf = UncheckedSyncArray :: from_slice ( buffer) ;
4543 let out_buf = & buf;
4644
@@ -49,7 +47,7 @@ fn generate_buffer(
4947 s. spawn ( move |_| {
5048 let mut pixel = thread_id;
5149
52- while pixel <= max_pixel {
50+ while pixel < out_buf . len ( ) {
5351 let mut z = Complex :: default ( ) ;
5452 let c = index_to_complex ( pixel, scale, dim, offset) ;
5553
@@ -122,6 +120,8 @@ fn main() -> Result<(), Box<dyn Error>> {
122120 let mut frame = 0 ;
123121 let mut scale = conf. starting_scale ;
124122
123+ let start = std:: time:: Instant :: now ( ) ;
124+
125125 while window. is_open ( ) && !window. is_key_down ( Key :: Escape ) {
126126 generate_buffer ( conf. threads , scale, & mut buffer, conf. dims , conf. offset ) ;
127127 insert_frame_counter ( frame, & mut buffer, conf. dims ) ;
@@ -130,6 +130,10 @@ fn main() -> Result<(), Box<dyn Error>> {
130130 frame += 1 ;
131131
132132 window. update_with_buffer ( & buffer, conf. dims . width , conf. dims . height ) ?;
133+
134+ if frame % 100 == 0 {
135+ println ! ( "{frame} frames in {:?}" , start. elapsed( ) ) ;
136+ }
133137 }
134138
135139 Ok ( ( ) )
0 commit comments