diff --git a/editor/src/messages/portfolio/document/node_graph/document_node_types.rs b/editor/src/messages/portfolio/document/node_graph/document_node_types.rs index 8a31adcb30..82e30df0c1 100644 --- a/editor/src/messages/portfolio/document/node_graph/document_node_types.rs +++ b/editor/src/messages/portfolio/document/node_graph/document_node_types.rs @@ -2065,7 +2065,7 @@ fn static_nodes() -> Vec { DocumentNode { manual_composition: Some(concrete!(Footprint)), inputs: vec![NodeInput::node(NodeId(1), 0)], - implementation: DocumentNodeImplementation::ProtoNode(ProtoNodeIdentifier::new("graphene_core::memo::ImpureMemoNode<_, _, _>")), + implementation: DocumentNodeImplementation::ProtoNode(ProtoNodeIdentifier::new("graphene_core::memo::MemoNode<_, _>")), ..Default::default() }, ] diff --git a/editor/src/node_graph_executor.rs b/editor/src/node_graph_executor.rs index 08c097bd76..7f2590b9ed 100644 --- a/editor/src/node_graph_executor.rs +++ b/editor/src/node_graph_executor.rs @@ -612,6 +612,11 @@ impl NodeGraphExecutor { document.network_interface.document_metadata_mut().update_from_monitor(HashMap::new(), HashMap::new()); log::trace!("{e}"); + responses.add(NodeGraphMessage::UpdateTypes { + resolved_types: ResolvedDocumentNodeTypesDelta::default(), + node_graph_errors, + }); + responses.add(NodeGraphMessage::SendGraph); return Err("Node graph evaluation failed".to_string()); } Ok(result) => result, diff --git a/node-graph/gcore/src/graphic_element.rs b/node-graph/gcore/src/graphic_element.rs index 0922a5b284..7d16220de3 100644 --- a/node-graph/gcore/src/graphic_element.rs +++ b/node-graph/gcore/src/graphic_element.rs @@ -232,8 +232,9 @@ async fn construct_artboard( let intersection = viewport_bounds.intersect(&artboard_bounds); let offset = intersection.start; let scale = footprint.scale(); - let intersection = intersection.transformed(footprint.transform); + // let intersection = intersection.transformed(footprint.transform); let resolution = (scale * intersection.size()).as_uvec2(); + log::debug!("intersection: {intersection:?}"); log::debug!("offset: {offset:?}, resolution: {resolution:?}"); if clip { diff --git a/node-graph/gstd/src/raster.rs b/node-graph/gstd/src/raster.rs index 1963e2cd97..354c647836 100644 --- a/node-graph/gstd/src/raster.rs +++ b/node-graph/gstd/src/raster.rs @@ -656,15 +656,17 @@ fn noise_pattern( // If the image would not be visible, return an empty image if size.x <= 0. || size.y <= 0. { + log::debug!("empty size, aborting"); return ImageFrame::empty(); } let footprint_scale = footprint.scale(); let width = (size.x * footprint_scale.x) as u32; let height = (size.y * footprint_scale.y) as u32; - log::debug!("resolution: {:?}", footprint.resolution()); - let width = footprint.resolution().x; - let height = footprint.resolution().y; + log::debug!("w: {width} h: {height}"); + // log::debug!("resolution: {:?}", footprint.resolution()); + // let width = footprint.resolution().x; + // let height = footprint.resolution().y; // All let mut image = Image::new(width, height, Color::from_luminance(0.5)); diff --git a/node-graph/gstd/src/wasm_application_io.rs b/node-graph/gstd/src/wasm_application_io.rs index d1130fdf6b..b0d5d4c0cc 100644 --- a/node-graph/gstd/src/wasm_application_io.rs +++ b/node-graph/gstd/src/wasm_application_io.rs @@ -126,7 +126,6 @@ async fn render_canvas(render_config: RenderConfig, data: impl GraphicElementRen // TODO: Instead of applying the transform here, pass the transform during the translation to avoid the O(Nr cost scene.append(&child, Some(kurbo::Affine::new(footprint.transform.to_cols_array()))); let resolution = footprint.resolution(); - log::debug!("rendering using resolution: {resolution:?}"); exec.render_vello_scene(&scene, &surface_handle, resolution.x, resolution.y, &context) .await diff --git a/node-graph/interpreted-executor/src/node_registry.rs b/node-graph/interpreted-executor/src/node_registry.rs index 8989ca72a1..cca4f86e35 100644 --- a/node-graph/interpreted-executor/src/node_registry.rs +++ b/node-graph/interpreted-executor/src/node_registry.rs @@ -621,6 +621,7 @@ fn node_registry() -> HashMap, input: (), output: RenderOutput, params: [RenderOutput]), async_node!(graphene_core::memo::MemoNode<_, _>, input: Footprint, output: Image, fn_params: [Footprint => Image]), async_node!(graphene_core::memo::MemoNode<_, _>, input: Footprint, output: ImageFrame, fn_params: [Footprint => ImageFrame]), + async_node!(graphene_core::memo::MemoNode<_, _>, input: Footprint, output: TextureFrame, fn_params: [Footprint => TextureFrame]), async_node!(graphene_core::memo::MemoNode<_, _>, input: Footprint, output: QuantizationChannels, fn_params: [Footprint => QuantizationChannels]), async_node!(graphene_core::memo::MemoNode<_, _>, input: Footprint, output: Vec, fn_params: [Footprint => Vec]), async_node!(graphene_core::memo::MemoNode<_, _>, input: Footprint, output: Arc, fn_params: [Footprint => Arc]),