( &self, renderer: &mut R, )
| 138 | } |
| 139 | |
| 140 | pub fn render_elements<R: Renderer + ImportAll + AsGlowRenderer>( |
| 141 | &self, |
| 142 | renderer: &mut R, |
| 143 | ) -> Vec<CustomRenderElements<R>> |
| 144 | where |
| 145 | <R as Renderer>::TextureId: Texture + 'static, |
| 146 | { |
| 147 | let output = self.outputs().next().unwrap(); |
| 148 | let layer_map = layer_map_for_output(output); |
| 149 | let (lower, upper): (Vec<&LayerSurface>, Vec<&LayerSurface>) = layer_map |
| 150 | .layers() |
| 151 | .rev() |
| 152 | .partition(|s| matches!(s.layer(), Layer::Background | Layer::Bottom)); |
| 153 | |
| 154 | let mut render_elements: Vec<CustomRenderElements<_>> = Vec::new(); |
| 155 | render_elements.extend( |
| 156 | upper |
| 157 | .into_iter() |
| 158 | .filter_map(|surface| { |
| 159 | layer_map.layer_geometry(surface).map(|geo| (geo.loc, surface)) |
| 160 | }) |
| 161 | .flat_map(|(loc, surface)| { |
| 162 | AsRenderElements::<R>::render_elements::<CustomRenderElements<_>>( |
| 163 | surface, |
| 164 | renderer, |
| 165 | loc.to_physical_precise_round(1), |
| 166 | Scale::from(1.0), |
| 167 | 1.0, |
| 168 | ) |
| 169 | }), |
| 170 | ); |
| 171 | |
| 172 | for element in &self.windows { |
| 173 | let window = &element.borrow().smithay_window; |
| 174 | // if CONFIG.read().decorations.border.width > 0 { |
| 175 | if 3 > 0 { |
| 176 | render_elements.push(CustomRenderElements::Shader(BorderShader::element( |
| 177 | renderer.glow_renderer_mut(), |
| 178 | window, |
| 179 | element.borrow().rec.loc, |
| 180 | ))); |
| 181 | } |
| 182 | render_elements.append(&mut window.render_elements( |
| 183 | renderer, |
| 184 | element.borrow().render_location().to_physical(1), |
| 185 | Scale::from(1.0), |
| 186 | 1.0, |
| 187 | )); |
| 188 | } |
| 189 | |
| 190 | render_elements.extend( |
| 191 | lower |
| 192 | .into_iter() |
| 193 | .filter_map(|surface| { |
| 194 | layer_map.layer_geometry(surface).map(|geo| (geo.loc, surface)) |
| 195 | }) |
| 196 | .flat_map(|(loc, surface)| { |
| 197 | AsRenderElements::<R>::render_elements::<CustomRenderElements<_>>( |
no test coverage detected