From 3f671a55b2850a3459d4c723e6adaac3132dba43 Mon Sep 17 00:00:00 2001 From: jrmoulton Date: Thu, 12 Mar 2026 22:30:00 -0600 Subject: [PATCH] anyrender_skia: size render_to_vec buffers before wrapping pixels SkiaImageRenderer::render_to_vec currently assumes the caller has already resized the Vec to the exact pixel buffer size. When callers pass an empty Vec with only capacity reserved, wrap_pixels receives an empty slice and the renderer panics. Resize the Vec to image_info.compute_min_byte_size() before wrapping it so offscreen rendering works with a plain empty Vec. --- crates/anyrender_skia/src/image_renderer.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/crates/anyrender_skia/src/image_renderer.rs b/crates/anyrender_skia/src/image_renderer.rs index 10f8de9..9a24458 100644 --- a/crates/anyrender_skia/src/image_renderer.rs +++ b/crates/anyrender_skia/src/image_renderer.rs @@ -51,6 +51,8 @@ impl ImageRenderer for SkiaImageRenderer { ) { debug_timer!(timer, feature = "log_frame_times"); + buffer.resize(self.image_info.compute_min_byte_size(), 0); + let mut surface = surfaces::wrap_pixels( &self.image_info, &mut buffer[..],