diff --git a/components/canvas/raqote_backend.rs b/components/canvas/raqote_backend.rs index 1bfc27b5ab4..b212a2622ea 100644 --- a/components/canvas/raqote_backend.rs +++ b/components/canvas/raqote_backend.rs @@ -310,8 +310,15 @@ impl GenericDrawTarget for raqote::DrawTarget { ) { unimplemented!(); } - fn snapshot_data(&self, _f: &dyn Fn(&[u8]) -> Vec) -> Vec { - unimplemented!(); + #[allow(unsafe_code)] + fn snapshot_data(&self, f: &dyn Fn(&[u8]) -> Vec) -> Vec { + let v = self.get_data(); + f(unsafe { + std::slice::from_raw_parts( + v.as_ptr() as *const u8, + v.len() * std::mem::size_of::(), + ) + }) } fn snapshot_data_owned(&self) -> Vec { unimplemented!();