diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2023-09-19 19:08:45 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2023-09-19 19:08:45 +0400 |
| commit | e88577bc82c16e6f71b519fc3738957341c9fd51 (patch) | |
| tree | 65bf6fcbc3f49be52637bf4442f2d8712c4ce382 /src | |
| parent | 69f561cd6f9d9b87d5624dd09be0fd5660f9cf2e (diff) | |
| download | niri-e88577bc82c16e6f71b519fc3738957341c9fd51.tar.gz niri-e88577bc82c16e6f71b519fc3738957341c9fd51.tar.bz2 niri-e88577bc82c16e6f71b519fc3738957341c9fd51.zip | |
niri: Extract render_to_vec()
Diffstat (limited to 'src')
| -rw-r--r-- | src/niri.rs | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/src/niri.rs b/src/niri.rs index cfe89532..6e3f54a3 100644 --- a/src/niri.rs +++ b/src/niri.rs @@ -1060,12 +1060,7 @@ impl Niri { let size = output.current_mode().unwrap().size; let elements = self.render(renderer, output); - - let mapping = render_and_download(renderer, size, &elements).context("error rendering")?; - let copy = renderer - .map_texture(&mapping) - .context("error mapping texture")?; - let pixels = copy.to_vec(); + let pixels = render_to_vec(renderer, size, &elements)?; let path = make_screenshot_path().context("error making screenshot path")?; debug!("saving screenshot to {path:?}"); @@ -1145,6 +1140,20 @@ fn render_and_download( Ok(mapping) } +fn render_to_vec( + renderer: &mut GlesRenderer, + size: Size<i32, Physical>, + elements: &[OutputRenderElements<GlesRenderer>], +) -> anyhow::Result<Vec<u8>> { + let _span = tracy_client::span!("render_to_vec"); + + let mapping = render_and_download(renderer, size, elements).context("error rendering")?; + let copy = renderer + .map_texture(&mapping) + .context("error mapping texture")?; + Ok(copy.to_vec()) +} + fn render_to_dmabuf( renderer: &mut GlesRenderer, dmabuf: Dmabuf, |
