From 27294c75696f2ffb126384ba23adedc070989586 Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 1 Sep 2025 18:16:36 -0700 Subject: [PATCH] Add button --- editor/src/messages/frontend/frontend_message.rs | 2 ++ .../portfolio/document/node_graph/node_graph_message.rs | 1 + .../document/node_graph/node_graph_message_handler.rs | 5 +++++ .../portfolio/menu_bar/menu_bar_message_handler.rs | 8 ++++++++ frontend/src/messages.ts | 2 ++ frontend/src/state-providers/node-graph.ts | 1 + 6 files changed, 19 insertions(+) diff --git a/editor/src/messages/frontend/frontend_message.rs b/editor/src/messages/frontend/frontend_message.rs index 963a85cd9d..8fb3b0c3e3 100644 --- a/editor/src/messages/frontend/frontend_message.rs +++ b/editor/src/messages/frontend/frontend_message.rs @@ -280,6 +280,8 @@ pub enum FrontendMessage { // Displays a dashed border around the node #[serde(rename = "previewedNode")] previewed_node: Option, + #[serde(rename = "nativeNodeGraphRender")] + native_node_graph_render: bool, }, UpdateVisibleNodes { nodes: Vec, diff --git a/editor/src/messages/portfolio/document/node_graph/node_graph_message.rs b/editor/src/messages/portfolio/document/node_graph/node_graph_message.rs index 7e9fa5a16b..15ef3ab246 100644 --- a/editor/src/messages/portfolio/document/node_graph/node_graph_message.rs +++ b/editor/src/messages/portfolio/document/node_graph/node_graph_message.rs @@ -183,6 +183,7 @@ pub enum NodeGraphMessage { TogglePreviewImpl { node_id: NodeId, }, + ToggleNativeNodeGraphRender, SetImportExportName { name: String, index: ImportOrExport, diff --git a/editor/src/messages/portfolio/document/node_graph/node_graph_message_handler.rs b/editor/src/messages/portfolio/document/node_graph/node_graph_message_handler.rs index 4f897806b7..e7fe4ad7b2 100644 --- a/editor/src/messages/portfolio/document/node_graph/node_graph_message_handler.rs +++ b/editor/src/messages/portfolio/document/node_graph/node_graph_message_handler.rs @@ -1630,6 +1630,7 @@ impl<'a> MessageHandler> for NodeG opacity: graph_fade_artwork_percentage, in_selected_network: selection_network_path == breadcrumb_network_path, previewed_node, + native_node_graph_render: self.native_node_graph_render, }); responses.add(NodeGraphMessage::UpdateVisibleNodes); @@ -1781,6 +1782,10 @@ impl<'a> MessageHandler> for NodeG NodeGraphMessage::TogglePreviewImpl { node_id } => { network_interface.toggle_preview(node_id, selection_network_path); } + NodeGraphMessage::ToggleNativeNodeGraphRender => { + self.native_node_graph_render = !self.native_node_graph_render; + responses.add(NodeGraphMessage::SendGraph); + } NodeGraphMessage::ToggleSelectedLocked => { let Some(selected_nodes) = network_interface.selected_nodes_in_nested_network(selection_network_path) else { log::error!("Could not get selected nodes in NodeGraphMessage::ToggleSelectedLocked"); diff --git a/editor/src/messages/portfolio/menu_bar/menu_bar_message_handler.rs b/editor/src/messages/portfolio/menu_bar/menu_bar_message_handler.rs index 9b86761d87..f66fdd4783 100644 --- a/editor/src/messages/portfolio/menu_bar/menu_bar_message_handler.rs +++ b/editor/src/messages/portfolio/menu_bar/menu_bar_message_handler.rs @@ -18,6 +18,7 @@ pub struct MenuBarMessageHandler { pub has_selection_history: (bool, bool), pub message_logging_verbosity: MessageLoggingVerbosity, pub reset_node_definitions_on_open: bool, + pub native_node_graph_render: bool, pub make_path_editable_is_allowed: bool, pub data_panel_open: bool, pub layers_panel_open: bool, @@ -48,6 +49,7 @@ impl LayoutHolder for MenuBarMessageHandler { let message_logging_verbosity_names = self.message_logging_verbosity == MessageLoggingVerbosity::Names; let message_logging_verbosity_contents = self.message_logging_verbosity == MessageLoggingVerbosity::Contents; let reset_node_definitions_on_open = self.reset_node_definitions_on_open; + let native_node_graph_render = self.native_node_graph_render; let make_path_editable_is_allowed = self.make_path_editable_is_allowed; let menu_bar_entries = vec![ @@ -696,6 +698,12 @@ impl LayoutHolder for MenuBarMessageHandler { action: MenuBarEntry::create_action(|_| PortfolioMessage::ToggleResetNodesToDefinitionsOnOpen.into()), ..MenuBarEntry::default() }], + vec![MenuBarEntry { + label: "Native Node Graph UI Render".into(), + icon: Some(if native_node_graph_render { "CheckboxChecked" } else { "CheckboxUnchecked" }.into()), + action: MenuBarEntry::create_action(|_| NodeGraphMessage::ToggleNativeNodeGraphRender.into()), + ..MenuBarEntry::default() + }], vec![ MenuBarEntry { label: "Print Trace Logs".into(), diff --git a/frontend/src/messages.ts b/frontend/src/messages.ts index 0fb2b901bc..527c5ee0cc 100644 --- a/frontend/src/messages.ts +++ b/frontend/src/messages.ts @@ -116,6 +116,8 @@ export class UpdateNodeGraphRender extends JsMessage { readonly inSelectedNetwork!: boolean; readonly previewedNode!: bigint | undefined; + + readonly nativeNodeGraphRender!: boolean; } export class UpdateVisibleNodes extends JsMessage { diff --git a/frontend/src/state-providers/node-graph.ts b/frontend/src/state-providers/node-graph.ts index 703d90a8fc..12f5c5a187 100644 --- a/frontend/src/state-providers/node-graph.ts +++ b/frontend/src/state-providers/node-graph.ts @@ -118,6 +118,7 @@ export function createNodeGraphState(editor: Editor) { state.opacity = updateNodeGraphRender.opacity; state.inSelectedNetwork = updateNodeGraphRender.inSelectedNetwork; state.previewedNode = updateNodeGraphRender.previewedNode; + state.nativeNodeGraphRender = updateNodeGraphRender.nativeNodeGraphRender; return state; }); });