MCPcopy Create free account
hub / github.com/StrataWM/strata / render_elements

Method render_elements

src/workspaces.rs:140–207  ·  view source on GitHub ↗
(
		&self,
		renderer: &mut R,
	)

Source from the content-addressed store, hash-verified

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<_>>(

Callers 1

winit_renderMethod · 0.80

Calls 3

outputsMethod · 0.80
glow_renderer_mutMethod · 0.80
render_locationMethod · 0.80

Tested by

no test coverage detected