File tree Expand file tree Collapse file tree 1 file changed +25
-22
lines changed
Expand file tree Collapse file tree 1 file changed +25
-22
lines changed Original file line number Diff line number Diff line change @@ -186,29 +186,32 @@ pub fn present(
186186 . unwrap_or_else ( || vec ! [ Rectangle :: with_size( viewport. logical_size( ) ) ] ) ;
187187
188188 if damage. is_empty ( ) {
189- return Ok ( ( ) ) ;
190- }
191-
192- surface. layer_stack . push_front ( renderer. layers ( ) . to_vec ( ) ) ;
193- surface. background_color = background_color;
194-
195- let damage =
196- damage:: group ( damage, Rectangle :: with_size ( viewport. logical_size ( ) ) ) ;
197-
198- let mut pixels = tiny_skia:: PixmapMut :: from_bytes (
199- bytemuck:: cast_slice_mut ( & mut buffer) ,
200- physical_size. width ,
201- physical_size. height ,
202- )
203- . expect ( "Create pixel map" ) ;
189+ let layers = surface. layer_stack . pop_back ( ) . unwrap ( ) ;
190+ surface. layer_stack . push_front ( layers) ;
191+ } else {
192+ surface. layer_stack . push_front ( renderer. layers ( ) . to_vec ( ) ) ;
193+ surface. background_color = background_color;
194+
195+ let damage = damage:: group (
196+ damage,
197+ Rectangle :: with_size ( viewport. logical_size ( ) ) ,
198+ ) ;
199+
200+ let mut pixels = tiny_skia:: PixmapMut :: from_bytes (
201+ bytemuck:: cast_slice_mut ( & mut buffer) ,
202+ physical_size. width ,
203+ physical_size. height ,
204+ )
205+ . expect ( "Create pixel map" ) ;
204206
205- renderer. draw (
206- & mut pixels,
207- & mut surface. clip_mask ,
208- viewport,
209- & damage,
210- background_color,
211- ) ;
207+ renderer. draw (
208+ & mut pixels,
209+ & mut surface. clip_mask ,
210+ viewport,
211+ & damage,
212+ background_color,
213+ ) ;
214+ }
212215
213216 on_pre_present ( ) ;
214217 buffer. present ( ) . map_err ( |_| compositor:: SurfaceError :: Lost )
You can’t perform that action at this time.
0 commit comments