Remove surface argument of Compositor::screenshot
This argument was completely ignored by the wgpu renderer, and used only for the `clip_mask` by the `tiny_skia` renderer. I believe creating a new clip mask is correct. This way it's possible to render offscreen without needing a surface.
This commit is contained in:
parent
2a2e20b0a3
commit
3fc57b7d95
5 changed files with 22 additions and 32 deletions
|
|
@ -121,12 +121,11 @@ impl crate::graphics::Compositor for Compositor {
|
|||
fn screenshot<T: AsRef<str>>(
|
||||
&mut self,
|
||||
renderer: &mut Self::Renderer,
|
||||
surface: &mut Self::Surface,
|
||||
viewport: &Viewport,
|
||||
background_color: Color,
|
||||
overlay: &[T],
|
||||
) -> Vec<u8> {
|
||||
screenshot(renderer, surface, viewport, background_color, overlay)
|
||||
screenshot(renderer, viewport, background_color, overlay)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -212,7 +211,6 @@ pub fn present<T: AsRef<str>>(
|
|||
|
||||
pub fn screenshot<T: AsRef<str>>(
|
||||
renderer: &mut Renderer,
|
||||
surface: &mut Surface,
|
||||
viewport: &Viewport,
|
||||
background_color: Color,
|
||||
overlay: &[T],
|
||||
|
|
@ -222,6 +220,9 @@ pub fn screenshot<T: AsRef<str>>(
|
|||
let mut offscreen_buffer: Vec<u32> =
|
||||
vec![0; size.width as usize * size.height as usize];
|
||||
|
||||
let mut clip_mask = tiny_skia::Mask::new(size.width, size.height)
|
||||
.expect("Create clip mask");
|
||||
|
||||
renderer.draw(
|
||||
&mut tiny_skia::PixmapMut::from_bytes(
|
||||
bytemuck::cast_slice_mut(&mut offscreen_buffer),
|
||||
|
|
@ -229,7 +230,7 @@ pub fn screenshot<T: AsRef<str>>(
|
|||
size.height,
|
||||
)
|
||||
.expect("Create offscreen pixel map"),
|
||||
&mut surface.clip_mask,
|
||||
&mut clip_mask,
|
||||
viewport,
|
||||
&[Rectangle::with_size(Size::new(
|
||||
size.width as f32,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue