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 {