11use niri_config:: utils:: MergeWith as _;
22use niri_config:: { Config , LayerRule } ;
3- use smithay:: backend:: renderer:: element:: surface:: {
4- render_elements_from_surface_tree, WaylandSurfaceRenderElement ,
5- } ;
3+ use smithay:: backend:: renderer:: element:: surface:: WaylandSurfaceRenderElement ;
64use smithay:: backend:: renderer:: element:: Kind ;
75use smithay:: desktop:: { LayerSurface , PopupManager } ;
86use smithay:: utils:: { Logical , Point , Scale , Size } ;
@@ -16,7 +14,7 @@ use crate::render_helpers::renderer::NiriRenderer;
1614use crate :: render_helpers:: shadow:: ShadowRenderElement ;
1715use crate :: render_helpers:: solid_color:: { SolidColorBuffer , SolidColorRenderElement } ;
1816use crate :: render_helpers:: surface:: push_elements_from_surface_tree;
19- use crate :: render_helpers:: { RenderTarget , SplitElements } ;
17+ use crate :: render_helpers:: RenderTarget ;
2018use crate :: utils:: { baba_is_float_offset, round_logical_in_physical} ;
2119
2220#[ derive( Debug ) ]
@@ -157,67 +155,7 @@ impl MappedLayer {
157155 Point :: from ( ( 0. , y) )
158156 }
159157
160- pub fn render < R : NiriRenderer > (
161- & self ,
162- renderer : & mut R ,
163- location : Point < f64 , Logical > ,
164- target : RenderTarget ,
165- ) -> SplitElements < LayerSurfaceRenderElement < R > > {
166- let mut rv = SplitElements :: default ( ) ;
167-
168- let scale = Scale :: from ( self . scale ) ;
169- let alpha = self . rules . opacity . unwrap_or ( 1. ) . clamp ( 0. , 1. ) ;
170- let location = location + self . bob_offset ( ) ;
171-
172- if target. should_block_out ( self . rules . block_out_from ) {
173- // Round to physical pixels.
174- let location = location. to_physical_precise_round ( scale) . to_logical ( scale) ;
175-
176- // FIXME: take geometry-corner-radius into account.
177- let elem = SolidColorRenderElement :: from_buffer (
178- & self . block_out_buffer ,
179- location,
180- alpha,
181- Kind :: Unspecified ,
182- ) ;
183- rv. normal . push ( elem. into ( ) ) ;
184- } else {
185- // Layer surfaces don't have extra geometry like windows.
186- let buf_pos = location;
187-
188- let surface = self . surface . wl_surface ( ) ;
189- for ( popup, popup_offset) in PopupManager :: popups_for_surface ( surface) {
190- // Layer surfaces don't have extra geometry like windows.
191- let offset = popup_offset - popup. geometry ( ) . loc ;
192-
193- rv. popups . extend ( render_elements_from_surface_tree (
194- renderer,
195- popup. wl_surface ( ) ,
196- ( buf_pos + offset. to_f64 ( ) ) . to_physical_precise_round ( scale) ,
197- scale,
198- alpha,
199- Kind :: ScanoutCandidate ,
200- ) ) ;
201- }
202-
203- rv. normal = render_elements_from_surface_tree (
204- renderer,
205- surface,
206- buf_pos. to_physical_precise_round ( scale) ,
207- scale,
208- alpha,
209- Kind :: ScanoutCandidate ,
210- ) ;
211- }
212-
213- let location = location. to_physical_precise_round ( scale) . to_logical ( scale) ;
214- rv. normal
215- . extend ( self . shadow . render ( renderer, location) . map ( Into :: into) ) ;
216-
217- rv
218- }
219-
220- pub fn render_push_normal < R : NiriRenderer > (
158+ pub fn render_normal < R : NiriRenderer > (
221159 & self ,
222160 renderer : & mut R ,
223161 location : Point < f64 , Logical > ,
@@ -258,10 +196,10 @@ impl MappedLayer {
258196
259197 let location = location. to_physical_precise_round ( scale) . to_logical ( scale) ;
260198 self . shadow
261- . render_push ( renderer, location, & mut |elem| push ( elem. into ( ) ) ) ;
199+ . render ( renderer, location, & mut |elem| push ( elem. into ( ) ) ) ;
262200 }
263201
264- pub fn render_push_popups < R : NiriRenderer > (
202+ pub fn render_popups < R : NiriRenderer > (
265203 & self ,
266204 renderer : & mut R ,
267205 location : Point < f64 , Logical > ,
0 commit comments