File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -186,29 +186,33 @@ 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+ surface
190+ . layer_stack
191+ . push_front ( surface. layer_stack . pop_back ( ) . unwrap ( ) ) ;
192+ } else {
193+ surface. layer_stack . push_front ( renderer. layers ( ) . to_vec ( ) ) ;
194+ surface. background_color = background_color;
195+
196+ let damage = damage:: group (
197+ damage,
198+ Rectangle :: with_size ( viewport. logical_size ( ) ) ,
199+ ) ;
200+
201+ let mut pixels = tiny_skia:: PixmapMut :: from_bytes (
202+ bytemuck:: cast_slice_mut ( & mut buffer) ,
203+ physical_size. width ,
204+ physical_size. height ,
205+ )
206+ . expect ( "Create pixel map" ) ;
204207
205- renderer. draw (
206- & mut pixels,
207- & mut surface. clip_mask ,
208- viewport,
209- & damage,
210- background_color,
211- ) ;
208+ renderer. draw (
209+ & mut pixels,
210+ & mut surface. clip_mask ,
211+ viewport,
212+ & damage,
213+ background_color,
214+ ) ;
215+ }
212216
213217 on_pre_present ( ) ;
214218 buffer. present ( ) . map_err ( |_| compositor:: SurfaceError :: Lost )
You can’t perform that action at this time.
0 commit comments