From 3fc57b7d95f2cd1d8c7bef06547c55195d4e032a Mon Sep 17 00:00:00 2001 From: Ian Douglas Scott Date: Thu, 21 Nov 2024 16:26:17 -0800 Subject: 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. --- tiny_skia/src/window/compositor.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'tiny_skia') diff --git a/tiny_skia/src/window/compositor.rs b/tiny_skia/src/window/compositor.rs index 153af6d5..6c144be0 100644 --- a/tiny_skia/src/window/compositor.rs +++ b/tiny_skia/src/window/compositor.rs @@ -121,12 +121,11 @@ impl crate::graphics::Compositor for Compositor { fn screenshot>( &mut self, renderer: &mut Self::Renderer, - surface: &mut Self::Surface, viewport: &Viewport, background_color: Color, overlay: &[T], ) -> Vec { - screenshot(renderer, surface, viewport, background_color, overlay) + screenshot(renderer, viewport, background_color, overlay) } } @@ -212,7 +211,6 @@ pub fn present>( pub fn screenshot>( renderer: &mut Renderer, - surface: &mut Surface, viewport: &Viewport, background_color: Color, overlay: &[T], @@ -222,6 +220,9 @@ pub fn screenshot>( let mut offscreen_buffer: Vec = 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>( size.height, ) .expect("Create offscreen pixel map"), - &mut surface.clip_mask, + &mut clip_mask, viewport, &[Rectangle::with_size(Size::new( size.width as f32, -- cgit