diff --git a/editor/src/node_graph_executor/runtime.rs b/editor/src/node_graph_executor/runtime.rs
index 49f99fde0e..ab3c79db55 100644
--- a/editor/src/node_graph_executor/runtime.rs
+++ b/editor/src/node_graph_executor/runtime.rs
@@ -475,31 +475,37 @@ impl NodeRuntime {
}
let bounds = match graphic.bounding_box(DAffine2::IDENTITY, true) {
- RenderBoundingBox::None => return,
- RenderBoundingBox::Infinite => [DVec2::ZERO, DVec2::new(300., 200.)],
- RenderBoundingBox::Rectangle(bounds) => bounds,
- };
- let footprint = Footprint {
- transform: DAffine2::from_translation(DVec2::new(bounds[0].x, bounds[0].y)),
- resolution: UVec2::new((bounds[1].x - bounds[0].x).abs() as u32, (bounds[1].y - bounds[0].y).abs() as u32),
- quality: RenderQuality::Full,
+ RenderBoundingBox::None => None,
+ RenderBoundingBox::Infinite => Some([DVec2::ZERO, DVec2::new(300., 200.)]),
+ RenderBoundingBox::Rectangle(bounds) => Some(bounds),
};
+ // Generate the SVG based on whether bounds exist
+ let new_thumbnail_svg = if let Some(bounds) = bounds {
+ let footprint = Footprint {
+ transform: DAffine2::from_translation(DVec2::new(bounds[0].x, bounds[0].y)),
+ resolution: UVec2::new((bounds[1].x - bounds[0].x).abs() as u32, (bounds[1].y - bounds[0].y).abs() as u32),
+ quality: RenderQuality::Full,
+ };
- // Render the thumbnail from a `Graphic` into an SVG string
- let render_params = RenderParams {
- footprint,
- thumbnail: true,
- ..Default::default()
- };
- let mut render = SvgRender::new();
- graphic.render_svg(&mut render, &render_params);
+ // Render the thumbnail from a `Graphic` into an SVG string
+ let render_params = RenderParams {
+ footprint,
+ thumbnail: true,
+ ..Default::default()
+ };
+ let mut render = SvgRender::new();
+ graphic.render_svg(&mut render, &render_params);
- // And give the SVG a viewbox and outer wrapper tag
- render.format_svg(bounds[0], bounds[1]);
+ // And give the SVG a viewbox and outer wrapper tag
+ render.format_svg(bounds[0], bounds[1]);
- // UPDATE FRONTEND THUMBNAIL
+ render.svg
+ } else {
+ // If there are no bounds (empty layer), return an empty SVG vector
+ Vec::new()
+ };
- let new_thumbnail_svg = render.svg;
+ // UPDATE FRONTEND THUMBNAIL
let old_thumbnail_svg = thumbnail_renders.entry(parent_network_node_id).or_default();
if old_thumbnail_svg != &new_thumbnail_svg {