From 70dcd229cfaa54946163ccf0a1ea0ce595a35cc4 Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Thu, 27 Feb 2025 08:09:44 +0300 Subject: Extract encompassing_geo() --- src/render_helpers/mod.rs | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'src/render_helpers') diff --git a/src/render_helpers/mod.rs b/src/render_helpers/mod.rs index bf834d58..36df83dc 100644 --- a/src/render_helpers/mod.rs +++ b/src/render_helpers/mod.rs @@ -157,6 +157,16 @@ impl ToRenderElement for BakedBuffer { } } +pub fn encompassing_geo( + scale: Scale, + elements: impl Iterator>, +) -> Rectangle { + elements + .map(|ele| ele.geometry(scale)) + .reduce(|a, b| a.merge(b)) + .unwrap_or_default() +} + pub fn render_to_encompassing_texture( renderer: &mut GlesRenderer, scale: Scale, @@ -164,11 +174,7 @@ pub fn render_to_encompassing_texture( fourcc: Fourcc, elements: &[impl RenderElement], ) -> anyhow::Result<(GlesTexture, SyncPoint, Rectangle)> { - let geo = elements - .iter() - .map(|ele| ele.geometry(scale)) - .reduce(|a, b| a.merge(b)) - .unwrap_or_default(); + let geo = encompassing_geo(scale, elements.iter()); let elements = elements.iter().rev().map(|ele| { RelocateRenderElement::from_element(ele, geo.loc.upscale(-1), Relocate::Relative) }); -- cgit