11#[ cfg( not( target_family = "wasm" ) ) ]
22use rayon:: prelude:: * ;
3+ use softbuffer:: { Context , Pixel , Surface } ;
34use std:: f64:: consts:: PI ;
45use std:: num:: NonZeroU32 ;
56use web_time:: Instant ;
@@ -15,7 +16,7 @@ fn main() {
1516 let event_loop = EventLoop :: new ( ) . unwrap ( ) ;
1617 let start = Instant :: now ( ) ;
1718
18- let context = softbuffer :: Context :: new ( event_loop. owned_display_handle ( ) ) . unwrap ( ) ;
19+ let context = Context :: new ( event_loop. owned_display_handle ( ) ) . unwrap ( ) ;
1920
2021 let app = util:: WinitAppBuilder :: with_init (
2122 |event_loop| {
@@ -26,9 +27,7 @@ fn main() {
2627
2728 ( window, old_size, frames)
2829 } ,
29- move |_elwft, ( window, _old_size, _frames) | {
30- softbuffer:: Surface :: new ( & context, window. clone ( ) ) . unwrap ( )
31- } ,
30+ move |_elwft, ( window, _old_size, _frames) | Surface :: new ( & context, window. clone ( ) ) . unwrap ( ) ,
3231 )
3332 . with_event_handler ( move |state, surface, window_id, event, elwt| {
3433 let ( window, old_size, frames) = state;
@@ -95,7 +94,7 @@ fn main() {
9594 util:: run_app ( event_loop, app) ;
9695}
9796
98- fn pre_render_frames ( width : u32 , height : u32 ) -> Vec < Vec < u32 > > {
97+ fn pre_render_frames ( width : u32 , height : u32 ) -> Vec < Vec < Pixel > > {
9998 let render = |frame_id| {
10099 let elapsed = ( ( frame_id as f64 ) / ( 60.0 ) ) * 2.0 * PI ;
101100
@@ -104,14 +103,11 @@ fn pre_render_frames(width: u32, height: u32) -> Vec<Vec<u32>> {
104103 . map ( |( x, y) | {
105104 let y = ( y as f64 ) / ( height as f64 ) ;
106105 let x = ( x as f64 ) / ( width as f64 ) ;
107- let red =
108- ( ( ( ( y + elapsed) . sin ( ) * 0.5 + 0.5 ) * 255.0 ) . round ( ) as u32 ) . clamp ( 0 , 255 ) ;
109- let green =
110- ( ( ( ( x + elapsed) . sin ( ) * 0.5 + 0.5 ) * 255.0 ) . round ( ) as u32 ) . clamp ( 0 , 255 ) ;
111- let blue =
112- ( ( ( ( y - elapsed) . cos ( ) * 0.5 + 0.5 ) * 255.0 ) . round ( ) as u32 ) . clamp ( 0 , 255 ) ;
113-
114- blue | ( green << 8 ) | ( red << 16 )
106+ let r = ( ( ( ( y + elapsed) . sin ( ) * 0.5 + 0.5 ) * 255.0 ) . round ( ) as u32 ) . clamp ( 0 , 255 ) ;
107+ let g = ( ( ( ( x + elapsed) . sin ( ) * 0.5 + 0.5 ) * 255.0 ) . round ( ) as u32 ) . clamp ( 0 , 255 ) ;
108+ let b = ( ( ( ( y - elapsed) . cos ( ) * 0.5 + 0.5 ) * 255.0 ) . round ( ) as u32 ) . clamp ( 0 , 255 ) ;
109+
110+ Pixel :: new_rgb ( r as u8 , g as u8 , b as u8 )
115111 } )
116112 . collect :: < Vec < _ > > ( )
117113 } ;
0 commit comments