Merge pull request #2672 from ids1024/screenshot
Remove `surface` argument of `Compositor::screenshot`
This commit is contained in:
commit
53b7f507f8
5 changed files with 22 additions and 32 deletions
|
|
@ -90,7 +90,6 @@ pub trait Compositor: Sized {
|
||||||
fn screenshot<T: AsRef<str>>(
|
fn screenshot<T: AsRef<str>>(
|
||||||
&mut self,
|
&mut self,
|
||||||
renderer: &mut Self::Renderer,
|
renderer: &mut Self::Renderer,
|
||||||
surface: &mut Self::Surface,
|
|
||||||
viewport: &Viewport,
|
viewport: &Viewport,
|
||||||
background_color: Color,
|
background_color: Color,
|
||||||
overlay: &[T],
|
overlay: &[T],
|
||||||
|
|
@ -201,7 +200,6 @@ impl Compositor for () {
|
||||||
fn screenshot<T: AsRef<str>>(
|
fn screenshot<T: AsRef<str>>(
|
||||||
&mut self,
|
&mut self,
|
||||||
_renderer: &mut Self::Renderer,
|
_renderer: &mut Self::Renderer,
|
||||||
_surface: &mut Self::Surface,
|
|
||||||
_viewport: &Viewport,
|
_viewport: &Viewport,
|
||||||
_background_color: Color,
|
_background_color: Color,
|
||||||
_overlay: &[T],
|
_overlay: &[T],
|
||||||
|
|
|
||||||
|
|
@ -353,34 +353,27 @@ where
|
||||||
fn screenshot<T: AsRef<str>>(
|
fn screenshot<T: AsRef<str>>(
|
||||||
&mut self,
|
&mut self,
|
||||||
renderer: &mut Self::Renderer,
|
renderer: &mut Self::Renderer,
|
||||||
surface: &mut Self::Surface,
|
|
||||||
viewport: &graphics::Viewport,
|
viewport: &graphics::Viewport,
|
||||||
background_color: Color,
|
background_color: Color,
|
||||||
overlay: &[T],
|
overlay: &[T],
|
||||||
) -> Vec<u8> {
|
) -> Vec<u8> {
|
||||||
match (self, renderer, surface) {
|
match (self, renderer) {
|
||||||
(
|
(Self::Primary(compositor), Renderer::Primary(renderer)) => {
|
||||||
Self::Primary(compositor),
|
compositor.screenshot(
|
||||||
Renderer::Primary(renderer),
|
|
||||||
Surface::Primary(surface),
|
|
||||||
) => compositor.screenshot(
|
|
||||||
renderer,
|
renderer,
|
||||||
surface,
|
|
||||||
viewport,
|
viewport,
|
||||||
background_color,
|
background_color,
|
||||||
overlay,
|
overlay,
|
||||||
),
|
)
|
||||||
(
|
}
|
||||||
Self::Secondary(compositor),
|
(Self::Secondary(compositor), Renderer::Secondary(renderer)) => {
|
||||||
Renderer::Secondary(renderer),
|
compositor.screenshot(
|
||||||
Surface::Secondary(surface),
|
|
||||||
) => compositor.screenshot(
|
|
||||||
renderer,
|
renderer,
|
||||||
surface,
|
|
||||||
viewport,
|
viewport,
|
||||||
background_color,
|
background_color,
|
||||||
overlay,
|
overlay,
|
||||||
),
|
)
|
||||||
|
}
|
||||||
_ => unreachable!(),
|
_ => unreachable!(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -121,12 +121,11 @@ impl crate::graphics::Compositor for Compositor {
|
||||||
fn screenshot<T: AsRef<str>>(
|
fn screenshot<T: AsRef<str>>(
|
||||||
&mut self,
|
&mut self,
|
||||||
renderer: &mut Self::Renderer,
|
renderer: &mut Self::Renderer,
|
||||||
surface: &mut Self::Surface,
|
|
||||||
viewport: &Viewport,
|
viewport: &Viewport,
|
||||||
background_color: Color,
|
background_color: Color,
|
||||||
overlay: &[T],
|
overlay: &[T],
|
||||||
) -> Vec<u8> {
|
) -> 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>>(
|
pub fn screenshot<T: AsRef<str>>(
|
||||||
renderer: &mut Renderer,
|
renderer: &mut Renderer,
|
||||||
surface: &mut Surface,
|
|
||||||
viewport: &Viewport,
|
viewport: &Viewport,
|
||||||
background_color: Color,
|
background_color: Color,
|
||||||
overlay: &[T],
|
overlay: &[T],
|
||||||
|
|
@ -222,6 +220,9 @@ pub fn screenshot<T: AsRef<str>>(
|
||||||
let mut offscreen_buffer: Vec<u32> =
|
let mut offscreen_buffer: Vec<u32> =
|
||||||
vec![0; size.width as usize * size.height as usize];
|
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(
|
renderer.draw(
|
||||||
&mut tiny_skia::PixmapMut::from_bytes(
|
&mut tiny_skia::PixmapMut::from_bytes(
|
||||||
bytemuck::cast_slice_mut(&mut offscreen_buffer),
|
bytemuck::cast_slice_mut(&mut offscreen_buffer),
|
||||||
|
|
@ -229,7 +230,7 @@ pub fn screenshot<T: AsRef<str>>(
|
||||||
size.height,
|
size.height,
|
||||||
)
|
)
|
||||||
.expect("Create offscreen pixel map"),
|
.expect("Create offscreen pixel map"),
|
||||||
&mut surface.clip_mask,
|
&mut clip_mask,
|
||||||
viewport,
|
viewport,
|
||||||
&[Rectangle::with_size(Size::new(
|
&[Rectangle::with_size(Size::new(
|
||||||
size.width as f32,
|
size.width as f32,
|
||||||
|
|
|
||||||
|
|
@ -370,7 +370,6 @@ impl graphics::Compositor for Compositor {
|
||||||
fn screenshot<T: AsRef<str>>(
|
fn screenshot<T: AsRef<str>>(
|
||||||
&mut self,
|
&mut self,
|
||||||
renderer: &mut Self::Renderer,
|
renderer: &mut Self::Renderer,
|
||||||
_surface: &mut Self::Surface,
|
|
||||||
viewport: &Viewport,
|
viewport: &Viewport,
|
||||||
background_color: Color,
|
background_color: Color,
|
||||||
overlay: &[T],
|
overlay: &[T],
|
||||||
|
|
|
||||||
|
|
@ -1456,7 +1456,6 @@ fn run_action<P, C>(
|
||||||
if let Some(window) = window_manager.get_mut(id) {
|
if let Some(window) = window_manager.get_mut(id) {
|
||||||
let bytes = compositor.screenshot(
|
let bytes = compositor.screenshot(
|
||||||
&mut window.renderer,
|
&mut window.renderer,
|
||||||
&mut window.surface,
|
|
||||||
window.state.viewport(),
|
window.state.viewport(),
|
||||||
window.state.background_color(),
|
window.state.background_color(),
|
||||||
&debug.overlay(),
|
&debug.overlay(),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue