11use std:: time:: { Duration , Instant } ;
22
3- use rand:: rngs:: SmallRng ;
4- use rand:: { Rng , SeedableRng } ;
3+ use rand:: rngs:: { SmallRng , SysRng } ;
4+ use rand:: { RngExt , SeedableRng } ;
55use softbuffer:: { Buffer , Pixel } ;
66
77use crate :: camera:: Camera ;
@@ -27,7 +27,7 @@ const DURATION_BETWEEN_TICKS: Duration = Duration::from_millis(10);
2727
2828impl Game {
2929 pub fn new ( ) -> Self {
30- let mut rng = SmallRng :: from_os_rng ( ) ;
30+ let mut rng = SmallRng :: try_from_rng ( & mut SysRng ) . unwrap ( ) ;
3131 let position = Point3 :: new ( 13.0 , 2.0 , 3.0 ) ;
3232 let looking_at = Point3 :: new ( 0.0 , 0.0 , 0.0 ) ;
3333 let camera_direction = ( looking_at - position) . normalize ( ) ;
@@ -91,16 +91,14 @@ impl Game {
9191 {
9292 use rayon:: prelude:: * ;
9393
94- pixels
95- . par_iter_mut ( )
96- . enumerate ( )
97- . for_each_init ( SmallRng :: from_os_rng, move |rng, ( i, pixel) | {
98- each_pixel ( rng, i, pixel)
99- } ) ;
94+ pixels. par_iter_mut ( ) . enumerate ( ) . for_each_init (
95+ || SmallRng :: try_from_rng ( & mut SysRng ) . unwrap ( ) ,
96+ move |rng, ( i, pixel) | each_pixel ( rng, i, pixel) ,
97+ ) ;
10098 } ;
10199 #[ cfg( target_family = "wasm" ) ]
102100 {
103- let mut rng = SmallRng :: from_os_rng ( ) ;
101+ let mut rng = SmallRng :: try_from_rng ( & mut SysRng ) . unwrap ( ) ;
104102 pixels
105103 . iter_mut ( )
106104 . enumerate ( )
0 commit comments