This commit is contained in:
Adam
2025-09-08 19:35:13 -07:00
parent efe431fb56
commit 24ceb179b9
5 changed files with 151 additions and 56 deletions
+3 -1
View File
@@ -51,7 +51,9 @@ impl Editor {
in_selected_network: &active_document.selection_network_path == breadcrumb_network_path,
previewed_node,
};
let node_graph_overlay_node = generate_node_graph_overlay(node_graph_render_data, active_document.graph_fade_artwork_percentage);
let opacity = active_document.graph_fade_artwork_percentage;
let font_cache = self.dispatcher.message_handlers.portfolio_message_handler.persistent_data.font_cache.clone();
let node_graph_overlay_node = generate_node_graph_overlay(node_graph_render_data, opacity, font_cache);
Some(NodeNetwork {
exports: vec![NodeInput::node(NodeId(0), 0)],
nodes: vec![(NodeId(0), node_graph_overlay_node)].into_iter().collect(),
@@ -1,3 +1,5 @@
use std::sync::Arc;
use graph_craft::{
concrete,
document::{DocumentNode, DocumentNodeImplementation, NodeInput, NodeNetwork, value::TaggedValue},
@@ -5,11 +7,14 @@ use graph_craft::{
use graphene_std::{
node_graph_overlay::{types::NodeGraphOverlayData, ui_context::UIContext},
table::Table,
text::FontCache,
uuid::NodeId,
};
/// https://excalidraw.com/#json=LgKS6I4lQvGPmke06ZJyp,D9aON9vVZJAjNnZWfwy_SQ
pub fn generate_node_graph_overlay(node_graph_overlay_data: NodeGraphOverlayData, opacity: f64) -> DocumentNode {
pub fn generate_node_graph_overlay(node_graph_overlay_data: NodeGraphOverlayData, opacity: f64, font_cache: Arc<FontCache>) -> DocumentNode {
let font_cache_id = NodeId::new();
let generate_nodes_id = NodeId::new();
let cache_nodes_id = NodeId::new();
let transform_nodes_id = NodeId::new();
@@ -34,12 +39,20 @@ pub fn generate_node_graph_overlay(node_graph_overlay_data: NodeGraphOverlayData
implementation: DocumentNodeImplementation::Network(NodeNetwork {
exports: vec![NodeInput::node(send_overlay_id, 0)],
nodes: vec![
(
font_cache_id,
DocumentNode {
inputs: vec![NodeInput::value(TaggedValue::FontCache(font_cache), false)],
implementation: DocumentNodeImplementation::ProtoNode(graphene_std::ops::identity::IDENTIFIER),
..Default::default()
},
),
// Create the nodes
(
generate_nodes_id,
DocumentNode {
call_argument: concrete!(UIContext),
inputs: vec![NodeInput::network(concrete!(UIContext), 1)],
inputs: vec![NodeInput::network(concrete!(UIContext), 1), NodeInput::node(font_cache_id, 0)],
implementation: DocumentNodeImplementation::ProtoNode("graphene_core::node_graph_overlay::GenerateNodesNode".into()),
..Default::default()
},