11mod bg;
22mod icon;
33
4+ use std:: time:: Duration ;
5+
46use anyhow:: * ;
57#[ allow( unused_imports) ]
68use log:: { debug, error, info, warn} ;
@@ -49,7 +51,7 @@ impl Manager {
4951 let adapter = self
5052 . instance
5153 . request_adapter ( & wgpu:: RequestAdapterOptions {
52- power_preference : wgpu:: PowerPreference :: Default ,
54+ power_preference : wgpu:: PowerPreference :: LowPower ,
5355 compatible_surface : Some ( & surface) ,
5456 } )
5557 . await
@@ -60,7 +62,7 @@ impl Manager {
6062 & wgpu:: DeviceDescriptor {
6163 features : wgpu:: Features :: PUSH_CONSTANTS ,
6264 limits : wgpu:: Limits {
63- max_push_constant_size : 4 ,
65+ max_push_constant_size : self :: bg :: PUSH_CONSTANTS_SIZE ,
6466 ..wgpu:: Limits :: default ( )
6567 } ,
6668 shader_validation : true ,
@@ -132,7 +134,7 @@ impl State {
132134 self . icon . resize ( & self . queue , resolution_transform) ;
133135 }
134136
135- pub fn render ( & mut self , time : f32 ) {
137+ pub fn render ( & mut self , ctx : RenderContext ) {
136138 let frame = self
137139 . swap_chain
138140 . get_current_frame ( )
@@ -145,10 +147,15 @@ impl State {
145147 label : Some ( "Render Encoder" ) ,
146148 } ) ;
147149
148- self . bg . render ( & mut encoder, & frame, time ) ;
150+ self . bg . render ( & mut encoder, & frame, ctx ) ;
149151 self . icon . render ( & mut encoder, & frame) ;
150152
151153 // submit will accept anything that implements IntoIter
152154 self . queue . submit ( std:: iter:: once ( encoder. finish ( ) ) ) ;
153155 }
154156}
157+
158+ pub struct RenderContext {
159+ pub elapsed : Duration ,
160+ pub fade_amount : f32 ,
161+ }
0 commit comments