mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2025-08-04 05:18:19 +00:00
Add the menu bar command: Help > Debug > Reset Node Definitions on Open
This commit is contained in:
parent
100df9a81d
commit
a11f9b36c3
13 changed files with 68 additions and 138 deletions
2
demo-artwork/changing-seasons.graphite
generated
2
demo-artwork/changing-seasons.graphite
generated
File diff suppressed because one or more lines are too long
2
demo-artwork/isometric-fountain.graphite
generated
2
demo-artwork/isometric-fountain.graphite
generated
File diff suppressed because one or more lines are too long
2
demo-artwork/marbled-mandelbrot.graphite
generated
2
demo-artwork/marbled-mandelbrot.graphite
generated
File diff suppressed because one or more lines are too long
2
demo-artwork/painted-dreams.graphite
generated
2
demo-artwork/painted-dreams.graphite
generated
File diff suppressed because one or more lines are too long
2
demo-artwork/parametric-dunescape.graphite
generated
2
demo-artwork/parametric-dunescape.graphite
generated
File diff suppressed because one or more lines are too long
2
demo-artwork/procedural-string-lights.graphite
generated
2
demo-artwork/procedural-string-lights.graphite
generated
File diff suppressed because one or more lines are too long
2
demo-artwork/red-dress.graphite
generated
2
demo-artwork/red-dress.graphite
generated
File diff suppressed because one or more lines are too long
2
demo-artwork/valley-of-spires.graphite
generated
2
demo-artwork/valley-of-spires.graphite
generated
File diff suppressed because one or more lines are too long
|
@ -233,6 +233,7 @@ impl Dispatcher {
|
||||||
let preferences = &self.message_handlers.preferences_message_handler;
|
let preferences = &self.message_handlers.preferences_message_handler;
|
||||||
let current_tool = &self.message_handlers.tool_message_handler.tool_state.tool_data.active_tool_type;
|
let current_tool = &self.message_handlers.tool_message_handler.tool_state.tool_data.active_tool_type;
|
||||||
let message_logging_verbosity = self.message_handlers.debug_message_handler.message_logging_verbosity;
|
let message_logging_verbosity = self.message_handlers.debug_message_handler.message_logging_verbosity;
|
||||||
|
let reset_node_definitions_on_open = self.message_handlers.portfolio_message_handler.reset_node_definitions_on_open;
|
||||||
let timing_information = self.message_handlers.animation_message_handler.timing_information();
|
let timing_information = self.message_handlers.animation_message_handler.timing_information();
|
||||||
let animation = &self.message_handlers.animation_message_handler;
|
let animation = &self.message_handlers.animation_message_handler;
|
||||||
|
|
||||||
|
@ -244,6 +245,7 @@ impl Dispatcher {
|
||||||
preferences,
|
preferences,
|
||||||
current_tool,
|
current_tool,
|
||||||
message_logging_verbosity,
|
message_logging_verbosity,
|
||||||
|
reset_node_definitions_on_open,
|
||||||
timing_information,
|
timing_information,
|
||||||
animation,
|
animation,
|
||||||
},
|
},
|
||||||
|
|
|
@ -16,7 +16,7 @@ use graph_craft::document::*;
|
||||||
use graph_craft::imaginate_input::ImaginateSamplingMethod;
|
use graph_craft::imaginate_input::ImaginateSamplingMethod;
|
||||||
use graphene_core::raster::brush_cache::BrushCache;
|
use graphene_core::raster::brush_cache::BrushCache;
|
||||||
use graphene_core::raster::image::ImageFrameTable;
|
use graphene_core::raster::image::ImageFrameTable;
|
||||||
use graphene_core::raster::{CellularDistanceFunction, CellularReturnType, Color, DomainWarpType, FractalType, NoiseType, RedGreenBlue, RedGreenBlueAlpha};
|
use graphene_core::raster::{Color, RedGreenBlue, RedGreenBlueAlpha};
|
||||||
use graphene_core::text::{Font, TypesettingConfig};
|
use graphene_core::text::{Font, TypesettingConfig};
|
||||||
use graphene_core::transform::Footprint;
|
use graphene_core::transform::Footprint;
|
||||||
use graphene_core::vector::VectorDataTable;
|
use graphene_core::vector::VectorDataTable;
|
||||||
|
@ -438,7 +438,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
|
||||||
DocumentNodeMetadata {
|
DocumentNodeMetadata {
|
||||||
persistent_metadata: DocumentNodePersistentMetadata {
|
persistent_metadata: DocumentNodePersistentMetadata {
|
||||||
display_name: "Decode Image".to_string(),
|
display_name: "Decode Image".to_string(),
|
||||||
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)),
|
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(7, 0)),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
..Default::default()
|
..Default::default()
|
||||||
|
@ -446,7 +446,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
|
||||||
DocumentNodeMetadata {
|
DocumentNodeMetadata {
|
||||||
persistent_metadata: DocumentNodePersistentMetadata {
|
persistent_metadata: DocumentNodePersistentMetadata {
|
||||||
display_name: "Cull".to_string(),
|
display_name: "Cull".to_string(),
|
||||||
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)),
|
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(14, 0)),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
..Default::default()
|
..Default::default()
|
||||||
|
@ -511,7 +511,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
|
||||||
DocumentNodeMetadata {
|
DocumentNodeMetadata {
|
||||||
persistent_metadata: DocumentNodePersistentMetadata {
|
persistent_metadata: DocumentNodePersistentMetadata {
|
||||||
display_name: "Cache".to_string(),
|
display_name: "Cache".to_string(),
|
||||||
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)),
|
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(7, 0)),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
..Default::default()
|
..Default::default()
|
||||||
|
@ -588,7 +588,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
|
||||||
DocumentNodeMetadata {
|
DocumentNodeMetadata {
|
||||||
persistent_metadata: DocumentNodePersistentMetadata {
|
persistent_metadata: DocumentNodePersistentMetadata {
|
||||||
display_name: "Create Canvas".to_string(),
|
display_name: "Create Canvas".to_string(),
|
||||||
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)),
|
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 2)),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
..Default::default()
|
..Default::default()
|
||||||
|
@ -596,7 +596,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
|
||||||
DocumentNodeMetadata {
|
DocumentNodeMetadata {
|
||||||
persistent_metadata: DocumentNodePersistentMetadata {
|
persistent_metadata: DocumentNodePersistentMetadata {
|
||||||
display_name: "Cache".to_string(),
|
display_name: "Cache".to_string(),
|
||||||
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)),
|
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(7, 2)),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
..Default::default()
|
..Default::default()
|
||||||
|
@ -604,7 +604,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
|
||||||
DocumentNodeMetadata {
|
DocumentNodeMetadata {
|
||||||
persistent_metadata: DocumentNodePersistentMetadata {
|
persistent_metadata: DocumentNodePersistentMetadata {
|
||||||
display_name: "Draw Canvas".to_string(),
|
display_name: "Draw Canvas".to_string(),
|
||||||
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)),
|
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(14, 0)),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
..Default::default()
|
..Default::default()
|
||||||
|
@ -680,7 +680,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
|
||||||
DocumentNodeMetadata {
|
DocumentNodeMetadata {
|
||||||
persistent_metadata: DocumentNodePersistentMetadata {
|
persistent_metadata: DocumentNodePersistentMetadata {
|
||||||
display_name: "Create Surface".to_string(),
|
display_name: "Create Surface".to_string(),
|
||||||
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)),
|
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 2)),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
..Default::default()
|
..Default::default()
|
||||||
|
@ -688,7 +688,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
|
||||||
DocumentNodeMetadata {
|
DocumentNodeMetadata {
|
||||||
persistent_metadata: DocumentNodePersistentMetadata {
|
persistent_metadata: DocumentNodePersistentMetadata {
|
||||||
display_name: "Cache".to_string(),
|
display_name: "Cache".to_string(),
|
||||||
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)),
|
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(7, 2)),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
..Default::default()
|
..Default::default()
|
||||||
|
@ -696,7 +696,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
|
||||||
DocumentNodeMetadata {
|
DocumentNodeMetadata {
|
||||||
persistent_metadata: DocumentNodePersistentMetadata {
|
persistent_metadata: DocumentNodePersistentMetadata {
|
||||||
display_name: "Rasterize".to_string(),
|
display_name: "Rasterize".to_string(),
|
||||||
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)),
|
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(14, 0)),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
..Default::default()
|
..Default::default()
|
||||||
|
@ -716,87 +716,6 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
|
||||||
description: Cow::Borrowed("Rasterizes the given vector data"),
|
description: Cow::Borrowed("Rasterizes the given vector data"),
|
||||||
properties: None,
|
properties: None,
|
||||||
},
|
},
|
||||||
DocumentNodeDefinition {
|
|
||||||
identifier: "Noise Pattern",
|
|
||||||
category: "Raster",
|
|
||||||
node_template: NodeTemplate {
|
|
||||||
document_node: DocumentNode {
|
|
||||||
manual_composition: Some(concrete!(Context)),
|
|
||||||
implementation: DocumentNodeImplementation::ProtoNode(ProtoNodeIdentifier::new("graphene_std::raster::NoisePatternNode")),
|
|
||||||
inputs: vec![
|
|
||||||
NodeInput::value(TaggedValue::None, false),
|
|
||||||
NodeInput::value(TaggedValue::Bool(true), false),
|
|
||||||
NodeInput::value(TaggedValue::U32(0), false),
|
|
||||||
NodeInput::value(TaggedValue::F64(10.), false),
|
|
||||||
NodeInput::value(TaggedValue::NoiseType(NoiseType::default()), false),
|
|
||||||
NodeInput::value(TaggedValue::DomainWarpType(DomainWarpType::default()), false),
|
|
||||||
NodeInput::value(TaggedValue::F64(100.), false),
|
|
||||||
NodeInput::value(TaggedValue::FractalType(FractalType::default()), false),
|
|
||||||
NodeInput::value(TaggedValue::U32(3), false),
|
|
||||||
NodeInput::value(TaggedValue::F64(2.), false),
|
|
||||||
NodeInput::value(TaggedValue::F64(0.5), false),
|
|
||||||
NodeInput::value(TaggedValue::F64(0.), false), // 0-1 range
|
|
||||||
NodeInput::value(TaggedValue::F64(2.), false),
|
|
||||||
NodeInput::value(TaggedValue::CellularDistanceFunction(CellularDistanceFunction::default()), false),
|
|
||||||
NodeInput::value(TaggedValue::CellularReturnType(CellularReturnType::default()), false),
|
|
||||||
NodeInput::value(TaggedValue::F64(1.), false),
|
|
||||||
],
|
|
||||||
..Default::default()
|
|
||||||
},
|
|
||||||
persistent_node_metadata: DocumentNodePersistentMetadata {
|
|
||||||
input_properties: vec![
|
|
||||||
"Spacer".into(),
|
|
||||||
"Clip".into(),
|
|
||||||
"Seed".into(),
|
|
||||||
PropertiesRow::with_override("Scale", WidgetOverride::Custom("noise_properties_scale".to_string())),
|
|
||||||
PropertiesRow::with_override("Noise Type", WidgetOverride::Custom("noise_properties_noise_type".to_string())),
|
|
||||||
PropertiesRow::with_override("Domain Warp Type", WidgetOverride::Custom("noise_properties_domain_warp_type".to_string())),
|
|
||||||
PropertiesRow::with_override("Domain Warp Amplitude", WidgetOverride::Custom("noise_properties_domain_warp_amplitude".to_string())),
|
|
||||||
PropertiesRow::with_override("Fractal Type", WidgetOverride::Custom("noise_properties_fractal_type".to_string())),
|
|
||||||
PropertiesRow::with_override("Fractal Octaves", WidgetOverride::Custom("noise_properties_fractal_octaves".to_string())),
|
|
||||||
PropertiesRow::with_override("Fractal Lacunarity", WidgetOverride::Custom("noise_properties_fractal_lacunarity".to_string())),
|
|
||||||
PropertiesRow::with_override("Fractal Gain", WidgetOverride::Custom("noise_properties_fractal_gain".to_string())),
|
|
||||||
PropertiesRow::with_override("Fractal Weighted Strength", WidgetOverride::Custom("noise_properties_fractal_weighted_strength".to_string())),
|
|
||||||
PropertiesRow::with_override("Fractal Ping Pong Strength", WidgetOverride::Custom("noise_properties_ping_pong_strength".to_string())),
|
|
||||||
PropertiesRow::with_override("Cellular Distance Function", WidgetOverride::Custom("noise_properties_cellular_distance_function".to_string())),
|
|
||||||
PropertiesRow::with_override("Cellular Return Type", WidgetOverride::Custom("noise_properties_cellular_return_type".to_string())),
|
|
||||||
PropertiesRow::with_override("Cellular Jitter", WidgetOverride::Custom("noise_properties_cellular_jitter".to_string())),
|
|
||||||
],
|
|
||||||
output_names: vec!["Image".to_string()],
|
|
||||||
network_metadata: Some(NodeNetworkMetadata {
|
|
||||||
persistent_metadata: NodeNetworkPersistentMetadata {
|
|
||||||
node_metadata: [
|
|
||||||
DocumentNodeMetadata {
|
|
||||||
persistent_metadata: DocumentNodePersistentMetadata {
|
|
||||||
display_name: "Noise Pattern".to_string(),
|
|
||||||
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)),
|
|
||||||
..Default::default()
|
|
||||||
},
|
|
||||||
..Default::default()
|
|
||||||
},
|
|
||||||
DocumentNodeMetadata {
|
|
||||||
persistent_metadata: DocumentNodePersistentMetadata {
|
|
||||||
display_name: "Cull".to_string(),
|
|
||||||
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)),
|
|
||||||
..Default::default()
|
|
||||||
},
|
|
||||||
..Default::default()
|
|
||||||
},
|
|
||||||
]
|
|
||||||
.into_iter()
|
|
||||||
.enumerate()
|
|
||||||
.map(|(id, node)| (NodeId(id as u64), node))
|
|
||||||
.collect(),
|
|
||||||
..Default::default()
|
|
||||||
},
|
|
||||||
..Default::default()
|
|
||||||
}),
|
|
||||||
..Default::default()
|
|
||||||
},
|
|
||||||
},
|
|
||||||
description: Cow::Borrowed("Generates different noise patterns."),
|
|
||||||
properties: None,
|
|
||||||
},
|
|
||||||
// TODO: This needs to work with resolution-aware (raster with footprint, post-Cull node) data.
|
// TODO: This needs to work with resolution-aware (raster with footprint, post-Cull node) data.
|
||||||
// TODO: Auto-generate this from its proto node macro
|
// TODO: Auto-generate this from its proto node macro
|
||||||
DocumentNodeDefinition {
|
DocumentNodeDefinition {
|
||||||
|
@ -1010,7 +929,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
|
||||||
}),
|
}),
|
||||||
inputs: vec![
|
inputs: vec![
|
||||||
NodeInput::value(TaggedValue::ImageFrame(ImageFrameTable::one_empty_image()), true),
|
NodeInput::value(TaggedValue::ImageFrame(ImageFrameTable::one_empty_image()), true),
|
||||||
NodeInput::value(TaggedValue::ImageFrame(ImageFrameTable::one_empty_image()), true),
|
NodeInput::value(TaggedValue::ImageFrame(ImageFrameTable::one_empty_image()), false),
|
||||||
NodeInput::value(TaggedValue::BrushStrokes(Vec::new()), false),
|
NodeInput::value(TaggedValue::BrushStrokes(Vec::new()), false),
|
||||||
NodeInput::value(TaggedValue::BrushCache(BrushCache::new_proto()), false),
|
NodeInput::value(TaggedValue::BrushCache(BrushCache::new_proto()), false),
|
||||||
],
|
],
|
||||||
|
@ -1021,24 +940,14 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
|
||||||
output_names: vec!["Image".to_string()],
|
output_names: vec!["Image".to_string()],
|
||||||
network_metadata: Some(NodeNetworkMetadata {
|
network_metadata: Some(NodeNetworkMetadata {
|
||||||
persistent_metadata: NodeNetworkPersistentMetadata {
|
persistent_metadata: NodeNetworkPersistentMetadata {
|
||||||
node_metadata: [
|
node_metadata: [DocumentNodeMetadata {
|
||||||
DocumentNodeMetadata {
|
persistent_metadata: DocumentNodePersistentMetadata {
|
||||||
persistent_metadata: DocumentNodePersistentMetadata {
|
display_name: "Brush".to_string(),
|
||||||
display_name: "Brush".to_string(),
|
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)),
|
||||||
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)),
|
|
||||||
..Default::default()
|
|
||||||
},
|
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
DocumentNodeMetadata {
|
..Default::default()
|
||||||
persistent_metadata: DocumentNodePersistentMetadata {
|
}]
|
||||||
display_name: "Cull".to_string(),
|
|
||||||
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)),
|
|
||||||
..Default::default()
|
|
||||||
},
|
|
||||||
..Default::default()
|
|
||||||
},
|
|
||||||
]
|
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.enumerate()
|
.enumerate()
|
||||||
.map(|(id, node)| (NodeId(id as u64), node))
|
.map(|(id, node)| (NodeId(id as u64), node))
|
||||||
|
@ -1196,7 +1105,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
|
||||||
DocumentNodeMetadata {
|
DocumentNodeMetadata {
|
||||||
persistent_metadata: DocumentNodePersistentMetadata {
|
persistent_metadata: DocumentNodePersistentMetadata {
|
||||||
display_name: "Create Uniform".to_string(),
|
display_name: "Create Uniform".to_string(),
|
||||||
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)),
|
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(7, 0)),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
..Default::default()
|
..Default::default()
|
||||||
|
@ -1204,7 +1113,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
|
||||||
DocumentNodeMetadata {
|
DocumentNodeMetadata {
|
||||||
persistent_metadata: DocumentNodePersistentMetadata {
|
persistent_metadata: DocumentNodePersistentMetadata {
|
||||||
display_name: "Cache".to_string(),
|
display_name: "Cache".to_string(),
|
||||||
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)),
|
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(14, 0)),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
..Default::default()
|
..Default::default()
|
||||||
|
@ -1275,7 +1184,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
|
||||||
DocumentNodeMetadata {
|
DocumentNodeMetadata {
|
||||||
persistent_metadata: DocumentNodePersistentMetadata {
|
persistent_metadata: DocumentNodePersistentMetadata {
|
||||||
display_name: "Create Storage".to_string(),
|
display_name: "Create Storage".to_string(),
|
||||||
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)),
|
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(7, 0)),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
..Default::default()
|
..Default::default()
|
||||||
|
@ -1283,7 +1192,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
|
||||||
DocumentNodeMetadata {
|
DocumentNodeMetadata {
|
||||||
persistent_metadata: DocumentNodePersistentMetadata {
|
persistent_metadata: DocumentNodePersistentMetadata {
|
||||||
display_name: "Cache".to_string(),
|
display_name: "Cache".to_string(),
|
||||||
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)),
|
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(14, 0)),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
..Default::default()
|
..Default::default()
|
||||||
|
@ -1354,7 +1263,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
|
||||||
DocumentNodeMetadata {
|
DocumentNodeMetadata {
|
||||||
persistent_metadata: DocumentNodePersistentMetadata {
|
persistent_metadata: DocumentNodePersistentMetadata {
|
||||||
display_name: "Create Output Buffer".to_string(),
|
display_name: "Create Output Buffer".to_string(),
|
||||||
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)),
|
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(7, 0)),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
..Default::default()
|
..Default::default()
|
||||||
|
@ -1362,7 +1271,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
|
||||||
DocumentNodeMetadata {
|
DocumentNodeMetadata {
|
||||||
persistent_metadata: DocumentNodePersistentMetadata {
|
persistent_metadata: DocumentNodePersistentMetadata {
|
||||||
display_name: "Cache".to_string(),
|
display_name: "Cache".to_string(),
|
||||||
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)),
|
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(14, 0)),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
..Default::default()
|
..Default::default()
|
||||||
|
@ -1443,7 +1352,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
|
||||||
DocumentNodeMetadata {
|
DocumentNodeMetadata {
|
||||||
persistent_metadata: DocumentNodePersistentMetadata {
|
persistent_metadata: DocumentNodePersistentMetadata {
|
||||||
display_name: "Create Compute Pass".to_string(),
|
display_name: "Create Compute Pass".to_string(),
|
||||||
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)),
|
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(7, 0)),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
..Default::default()
|
..Default::default()
|
||||||
|
@ -1451,7 +1360,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
|
||||||
DocumentNodeMetadata {
|
DocumentNodeMetadata {
|
||||||
persistent_metadata: DocumentNodePersistentMetadata {
|
persistent_metadata: DocumentNodePersistentMetadata {
|
||||||
display_name: "Cache".to_string(),
|
display_name: "Cache".to_string(),
|
||||||
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)),
|
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(14, 0)),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
..Default::default()
|
..Default::default()
|
||||||
|
@ -1548,7 +1457,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
|
||||||
DocumentNodeMetadata {
|
DocumentNodeMetadata {
|
||||||
persistent_metadata: DocumentNodePersistentMetadata {
|
persistent_metadata: DocumentNodePersistentMetadata {
|
||||||
display_name: "Execute Compute Pipeline".to_string(),
|
display_name: "Execute Compute Pipeline".to_string(),
|
||||||
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)),
|
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(7, 0)),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
..Default::default()
|
..Default::default()
|
||||||
|
@ -1556,7 +1465,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
|
||||||
DocumentNodeMetadata {
|
DocumentNodeMetadata {
|
||||||
persistent_metadata: DocumentNodePersistentMetadata {
|
persistent_metadata: DocumentNodePersistentMetadata {
|
||||||
display_name: "Cache".to_string(),
|
display_name: "Cache".to_string(),
|
||||||
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)),
|
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(14, 0)),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
..Default::default()
|
..Default::default()
|
||||||
|
@ -1628,7 +1537,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
|
||||||
DocumentNodeMetadata {
|
DocumentNodeMetadata {
|
||||||
persistent_metadata: DocumentNodePersistentMetadata {
|
persistent_metadata: DocumentNodePersistentMetadata {
|
||||||
display_name: "Read Output Buffer".to_string(),
|
display_name: "Read Output Buffer".to_string(),
|
||||||
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)),
|
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(7, 0)),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
..Default::default()
|
..Default::default()
|
||||||
|
@ -1636,7 +1545,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
|
||||||
DocumentNodeMetadata {
|
DocumentNodeMetadata {
|
||||||
persistent_metadata: DocumentNodePersistentMetadata {
|
persistent_metadata: DocumentNodePersistentMetadata {
|
||||||
display_name: "Cache".to_string(),
|
display_name: "Cache".to_string(),
|
||||||
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)),
|
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(14, 0)),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
..Default::default()
|
..Default::default()
|
||||||
|
@ -1702,7 +1611,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
|
||||||
DocumentNodeMetadata {
|
DocumentNodeMetadata {
|
||||||
persistent_metadata: DocumentNodePersistentMetadata {
|
persistent_metadata: DocumentNodePersistentMetadata {
|
||||||
display_name: "Cache".to_string(),
|
display_name: "Cache".to_string(),
|
||||||
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)),
|
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(7, 0)),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
..Default::default()
|
..Default::default()
|
||||||
|
@ -1773,7 +1682,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
|
||||||
DocumentNodeMetadata {
|
DocumentNodeMetadata {
|
||||||
persistent_metadata: DocumentNodePersistentMetadata {
|
persistent_metadata: DocumentNodePersistentMetadata {
|
||||||
display_name: "Render Texture".to_string(),
|
display_name: "Render Texture".to_string(),
|
||||||
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)),
|
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(7, 0)),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
..Default::default()
|
..Default::default()
|
||||||
|
@ -1846,7 +1755,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
|
||||||
DocumentNodeMetadata {
|
DocumentNodeMetadata {
|
||||||
persistent_metadata: DocumentNodePersistentMetadata {
|
persistent_metadata: DocumentNodePersistentMetadata {
|
||||||
display_name: "Upload Texture".to_string(),
|
display_name: "Upload Texture".to_string(),
|
||||||
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)),
|
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(7, 0)),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
..Default::default()
|
..Default::default()
|
||||||
|
@ -1854,7 +1763,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
|
||||||
DocumentNodeMetadata {
|
DocumentNodeMetadata {
|
||||||
persistent_metadata: DocumentNodePersistentMetadata {
|
persistent_metadata: DocumentNodePersistentMetadata {
|
||||||
display_name: "Cache".to_string(),
|
display_name: "Cache".to_string(),
|
||||||
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)),
|
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(14, 0)),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
..Default::default()
|
..Default::default()
|
||||||
|
@ -2065,7 +1974,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
|
||||||
DocumentNodeMetadata {
|
DocumentNodeMetadata {
|
||||||
persistent_metadata: DocumentNodePersistentMetadata {
|
persistent_metadata: DocumentNodePersistentMetadata {
|
||||||
display_name: "Path Modify".to_string(),
|
display_name: "Path Modify".to_string(),
|
||||||
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)),
|
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(7, 0)),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
..Default::default()
|
..Default::default()
|
||||||
|
@ -2212,6 +2121,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
|
||||||
DocumentNodeMetadata {
|
DocumentNodeMetadata {
|
||||||
persistent_metadata: DocumentNodePersistentMetadata {
|
persistent_metadata: DocumentNodePersistentMetadata {
|
||||||
display_name: "Monitor".to_string(),
|
display_name: "Monitor".to_string(),
|
||||||
|
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
..Default::default()
|
..Default::default()
|
||||||
|
@ -2219,6 +2129,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
|
||||||
DocumentNodeMetadata {
|
DocumentNodeMetadata {
|
||||||
persistent_metadata: DocumentNodePersistentMetadata {
|
persistent_metadata: DocumentNodePersistentMetadata {
|
||||||
display_name: "Transform".to_string(),
|
display_name: "Transform".to_string(),
|
||||||
|
node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(7, 0)),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
..Default::default()
|
..Default::default()
|
||||||
|
|
|
@ -16,6 +16,7 @@ pub struct MenuBarMessageHandler {
|
||||||
pub has_selection_history: (bool, bool),
|
pub has_selection_history: (bool, bool),
|
||||||
pub spreadsheet_view_open: bool,
|
pub spreadsheet_view_open: bool,
|
||||||
pub message_logging_verbosity: MessageLoggingVerbosity,
|
pub message_logging_verbosity: MessageLoggingVerbosity,
|
||||||
|
pub reset_node_definitions_on_open: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl MessageHandler<MenuBarMessage, ()> for MenuBarMessageHandler {
|
impl MessageHandler<MenuBarMessage, ()> for MenuBarMessageHandler {
|
||||||
|
@ -40,6 +41,7 @@ impl LayoutHolder for MenuBarMessageHandler {
|
||||||
let message_logging_verbosity_off = self.message_logging_verbosity == MessageLoggingVerbosity::Off;
|
let message_logging_verbosity_off = self.message_logging_verbosity == MessageLoggingVerbosity::Off;
|
||||||
let message_logging_verbosity_names = self.message_logging_verbosity == MessageLoggingVerbosity::Names;
|
let message_logging_verbosity_names = self.message_logging_verbosity == MessageLoggingVerbosity::Names;
|
||||||
let message_logging_verbosity_contents = self.message_logging_verbosity == MessageLoggingVerbosity::Contents;
|
let message_logging_verbosity_contents = self.message_logging_verbosity == MessageLoggingVerbosity::Contents;
|
||||||
|
let reset_node_definitions_on_open = self.reset_node_definitions_on_open;
|
||||||
|
|
||||||
let menu_bar_entries = vec![
|
let menu_bar_entries = vec![
|
||||||
MenuBarEntry {
|
MenuBarEntry {
|
||||||
|
@ -624,12 +626,18 @@ impl LayoutHolder for MenuBarMessageHandler {
|
||||||
action: MenuBarEntry::no_action(),
|
action: MenuBarEntry::no_action(),
|
||||||
children: MenuBarEntryChildren(vec![
|
children: MenuBarEntryChildren(vec![
|
||||||
vec![MenuBarEntry {
|
vec![MenuBarEntry {
|
||||||
label: "Print Trace Logs".into(),
|
label: "Reset Nodes to Definitions on Open".into(),
|
||||||
icon: Some(if log::max_level() == log::LevelFilter::Trace { "CheckboxChecked" } else { "CheckboxUnchecked" }.into()),
|
icon: Some(if reset_node_definitions_on_open { "CheckboxChecked" } else { "CheckboxUnchecked" }.into()),
|
||||||
action: MenuBarEntry::create_action(|_| DebugMessage::ToggleTraceLogs.into()),
|
action: MenuBarEntry::create_action(|_| PortfolioMessage::ToggleResetNodesToDefinitionsOnOpen.into()),
|
||||||
..MenuBarEntry::default()
|
..MenuBarEntry::default()
|
||||||
}],
|
}],
|
||||||
vec![
|
vec![
|
||||||
|
MenuBarEntry {
|
||||||
|
label: "Print Trace Logs".into(),
|
||||||
|
icon: Some(if log::max_level() == log::LevelFilter::Trace { "CheckboxChecked" } else { "CheckboxUnchecked" }.into()),
|
||||||
|
action: MenuBarEntry::create_action(|_| DebugMessage::ToggleTraceLogs.into()),
|
||||||
|
..MenuBarEntry::default()
|
||||||
|
},
|
||||||
MenuBarEntry {
|
MenuBarEntry {
|
||||||
label: "Print Messages: Off".into(),
|
label: "Print Messages: Off".into(),
|
||||||
icon: message_logging_verbosity_off.then_some("SmallDot".into()),
|
icon: message_logging_verbosity_off.then_some("SmallDot".into()),
|
||||||
|
|
|
@ -73,6 +73,7 @@ pub enum PortfolioMessage {
|
||||||
document_name: String,
|
document_name: String,
|
||||||
document_serialized_content: String,
|
document_serialized_content: String,
|
||||||
},
|
},
|
||||||
|
ToggleResetNodesToDefinitionsOnOpen,
|
||||||
OpenDocumentFileWithId {
|
OpenDocumentFileWithId {
|
||||||
document_id: DocumentId,
|
document_id: DocumentId,
|
||||||
document_name: String,
|
document_name: String,
|
||||||
|
|
|
@ -33,6 +33,7 @@ pub struct PortfolioMessageData<'a> {
|
||||||
pub preferences: &'a PreferencesMessageHandler,
|
pub preferences: &'a PreferencesMessageHandler,
|
||||||
pub current_tool: &'a ToolType,
|
pub current_tool: &'a ToolType,
|
||||||
pub message_logging_verbosity: MessageLoggingVerbosity,
|
pub message_logging_verbosity: MessageLoggingVerbosity,
|
||||||
|
pub reset_node_definitions_on_open: bool,
|
||||||
pub timing_information: TimingInformation,
|
pub timing_information: TimingInformation,
|
||||||
pub animation: &'a AnimationMessageHandler,
|
pub animation: &'a AnimationMessageHandler,
|
||||||
}
|
}
|
||||||
|
@ -51,6 +52,7 @@ pub struct PortfolioMessageHandler {
|
||||||
/// The spreadsheet UI allows for instance data to be previewed.
|
/// The spreadsheet UI allows for instance data to be previewed.
|
||||||
pub spreadsheet: SpreadsheetMessageHandler,
|
pub spreadsheet: SpreadsheetMessageHandler,
|
||||||
device_pixel_ratio: Option<f64>,
|
device_pixel_ratio: Option<f64>,
|
||||||
|
pub reset_node_definitions_on_open: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl MessageHandler<PortfolioMessage, PortfolioMessageData<'_>> for PortfolioMessageHandler {
|
impl MessageHandler<PortfolioMessage, PortfolioMessageData<'_>> for PortfolioMessageHandler {
|
||||||
|
@ -60,6 +62,7 @@ impl MessageHandler<PortfolioMessage, PortfolioMessageData<'_>> for PortfolioMes
|
||||||
preferences,
|
preferences,
|
||||||
current_tool,
|
current_tool,
|
||||||
message_logging_verbosity,
|
message_logging_verbosity,
|
||||||
|
reset_node_definitions_on_open,
|
||||||
timing_information,
|
timing_information,
|
||||||
animation,
|
animation,
|
||||||
} = data;
|
} = data;
|
||||||
|
@ -75,6 +78,7 @@ impl MessageHandler<PortfolioMessage, PortfolioMessageData<'_>> for PortfolioMes
|
||||||
self.menu_bar_message_handler.has_selection_history = (false, false);
|
self.menu_bar_message_handler.has_selection_history = (false, false);
|
||||||
self.menu_bar_message_handler.spreadsheet_view_open = self.spreadsheet.spreadsheet_view_open;
|
self.menu_bar_message_handler.spreadsheet_view_open = self.spreadsheet.spreadsheet_view_open;
|
||||||
self.menu_bar_message_handler.message_logging_verbosity = message_logging_verbosity;
|
self.menu_bar_message_handler.message_logging_verbosity = message_logging_verbosity;
|
||||||
|
self.menu_bar_message_handler.reset_node_definitions_on_open = reset_node_definitions_on_open;
|
||||||
|
|
||||||
if let Some(document) = self.active_document_id.and_then(|document_id| self.documents.get_mut(&document_id)) {
|
if let Some(document) = self.active_document_id.and_then(|document_id| self.documents.get_mut(&document_id)) {
|
||||||
self.menu_bar_message_handler.has_active_document = true;
|
self.menu_bar_message_handler.has_active_document = true;
|
||||||
|
@ -409,6 +413,10 @@ impl MessageHandler<PortfolioMessage, PortfolioMessageData<'_>> for PortfolioMes
|
||||||
});
|
});
|
||||||
responses.add(PortfolioMessage::SelectDocument { document_id });
|
responses.add(PortfolioMessage::SelectDocument { document_id });
|
||||||
}
|
}
|
||||||
|
PortfolioMessage::ToggleResetNodesToDefinitionsOnOpen => {
|
||||||
|
self.reset_node_definitions_on_open = !self.reset_node_definitions_on_open;
|
||||||
|
responses.add(MenuBarMessage::SendLayout);
|
||||||
|
}
|
||||||
PortfolioMessage::OpenDocumentFileWithId {
|
PortfolioMessage::OpenDocumentFileWithId {
|
||||||
document_id,
|
document_id,
|
||||||
document_name,
|
document_name,
|
||||||
|
@ -420,8 +428,8 @@ impl MessageHandler<PortfolioMessage, PortfolioMessageData<'_>> for PortfolioMes
|
||||||
// TODO: Eventually remove this document upgrade code
|
// TODO: Eventually remove this document upgrade code
|
||||||
// This big code block contains lots of hacky code for upgrading old documents to the new format
|
// This big code block contains lots of hacky code for upgrading old documents to the new format
|
||||||
|
|
||||||
// It can be helpful to temporarily set `replace_implementations_from_definition` to true if it's desired to upgrade a piece of artwork to use fresh copies of all nodes
|
// Upgrade a document being opened to use fresh copies of all nodes
|
||||||
let replace_implementations_from_definition = document_serialized_content.contains("node_output_index");
|
let replace_implementations_from_definition = reset_node_definitions_on_open || document_serialized_content.contains("node_output_index");
|
||||||
// Upgrade layer implementation from https://github.com/GraphiteEditor/Graphite/pull/1946 (see also `fn fix_nodes()` in `main.rs` of Graphene CLI)
|
// Upgrade layer implementation from https://github.com/GraphiteEditor/Graphite/pull/1946 (see also `fn fix_nodes()` in `main.rs` of Graphene CLI)
|
||||||
let upgrade_from_before_returning_nested_click_targets =
|
let upgrade_from_before_returning_nested_click_targets =
|
||||||
document_serialized_content.contains("graphene_core::ConstructLayerNode") || document_serialized_content.contains("graphene_core::AddArtboardNode");
|
document_serialized_content.contains("graphene_core::ConstructLayerNode") || document_serialized_content.contains("graphene_core::AddArtboardNode");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue