Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
3c75682
Restructure node-graph folder
TrueDoctor Nov 9, 2025
0a584f4
Fix wasm compilation
TrueDoctor Nov 15, 2025
b4bea67
Move node definitions out of *-types crates
TrueDoctor Nov 15, 2025
585fb49
Cleanup
TrueDoctor Nov 15, 2025
a52b292
Fix warnings
TrueDoctor Nov 15, 2025
b952bba
Fix warnings
TrueDoctor Nov 15, 2025
8fe0773
Start adding migrations
TrueDoctor Nov 15, 2025
492bacc
Add migrations and move memo nodes to gcore
TrueDoctor Nov 16, 2025
3c92b5a
Move nodes/gsvg-render -> rendering
TrueDoctor Nov 16, 2025
ec8345b
Replace some hard coded identifiers and fix automatic conversion
TrueDoctor Nov 16, 2025
cbcc406
Fix Vec2Value node migration
TrueDoctor Nov 16, 2025
0888827
Fix formatting
TrueDoctor Nov 16, 2025
7f81694
Add more migrations
TrueDoctor Nov 16, 2025
a5a09ad
Cleanup features
TrueDoctor Nov 16, 2025
a4f51ea
Fix core_types::raster import
TrueDoctor Nov 16, 2025
81c160f
Update demo artwork (to make profile ci work)
TrueDoctor Nov 16, 2025
5373bf7
Move *-types to node-graph/libraries folder
TrueDoctor Nov 16, 2025
2a5a931
Merge branch 'master' into restructure-node-crates
Keavon Nov 17, 2025
9803a64
Add missing node migrations
TrueDoctor Nov 17, 2025
f1cae84
Merge remote-tracking branch 'origin/master' into restructure-node-cr…
TrueDoctor Nov 17, 2025
7088005
Migrate more nodes
TrueDoctor Nov 17, 2025
dad6dca
Remove impure memo node
TrueDoctor Nov 17, 2025
f9738bc
More fixes and remove warning
TrueDoctor Nov 17, 2025
d8e6118
Merge branch 'master' into restructure-node-crates
TrueDoctor Nov 18, 2025
226ee15
Migrate context and add a few missing migrations
TrueDoctor Nov 18, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
452 changes: 308 additions & 144 deletions Cargo.lock

Large diffs are not rendered by default.

93 changes: 60 additions & 33 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,28 @@ members = [
"libraries/dyn-any",
"libraries/path-bool",
"libraries/math-parser",
"node-graph/gapplication-io",
"node-graph/gbrush",
"node-graph/gcore",
"node-graph/gcore-shaders",
"node-graph/gmath-nodes",
"node-graph/gpath-bool",
"node-graph/libraries/application-io",
"node-graph/libraries/core-types",
"node-graph/libraries/no-std-types",
"node-graph/libraries/raster-types",
"node-graph/libraries/vector-types",
"node-graph/libraries/graphic-types",
"node-graph/libraries/rendering",
"node-graph/nodes/blending",
"node-graph/nodes/brush",
"node-graph/nodes/gcore",
"node-graph/nodes/graphic",
"node-graph/nodes/math",
"node-graph/nodes/path-bool",
"node-graph/nodes/raster",
"node-graph/nodes/raster/shaders",
"node-graph/nodes/raster/shaders/entrypoint",
"node-graph/nodes/text",
"node-graph/nodes/transform",
"node-graph/nodes/vector",
"node-graph/graph-craft",
"node-graph/graphene-cli",
"node-graph/graster-nodes",
"node-graph/graster-nodes/shaders",
"node-graph/graster-nodes/shaders/entrypoint",
"node-graph/gstd",
"node-graph/gsvg-renderer",
"node-graph/nodes/gstd",
"node-graph/interpreted-executor",
"node-graph/node-macro",
"node-graph/preprocessor",
Expand All @@ -37,18 +46,27 @@ default-members = [
"libraries/dyn-any",
"libraries/path-bool",
"libraries/math-parser",
"node-graph/gapplication-io",
"node-graph/gbrush",
"node-graph/gcore",
"node-graph/gcore-shaders",
"node-graph/graster-nodes/shaders",
"node-graph/gmath-nodes",
"node-graph/gpath-bool",
"node-graph/libraries/application-io",
"node-graph/libraries/core-types",
"node-graph/libraries/no-std-types",
"node-graph/libraries/raster-types",
"node-graph/libraries/vector-types",
"node-graph/libraries/graphic-types",
"node-graph/libraries/rendering",
"node-graph/nodes/blending",
"node-graph/nodes/brush",
"node-graph/nodes/gcore",
"node-graph/nodes/graphic",
"node-graph/nodes/math",
"node-graph/nodes/path-bool",
"node-graph/nodes/raster",
"node-graph/nodes/raster/shaders",
"node-graph/nodes/text",
"node-graph/nodes/transform",
"node-graph/nodes/vector",
"node-graph/graph-craft",
"node-graph/graphene-cli",
"node-graph/graster-nodes",
"node-graph/gstd",
"node-graph/gsvg-renderer",
"node-graph/nodes/gstd",
"node-graph/interpreted-executor",
"node-graph/node-macro",
"node-graph/preprocessor",
Expand All @@ -70,16 +88,25 @@ dyn-any = { path = "libraries/dyn-any", features = [
preprocessor = { path = "node-graph/preprocessor" }
math-parser = { path = "libraries/math-parser" }
path-bool = { path = "libraries/path-bool" }
graphene-application-io = { path = "node-graph/gapplication-io" }
graphene-brush = { path = "node-graph/gbrush" }
graphene-core = { path = "node-graph/gcore" }
graphene-core-shaders = { path = "node-graph/gcore-shaders" }
graphene-math-nodes = { path = "node-graph/gmath-nodes" }
graphene-path-bool = { path = "node-graph/gpath-bool" }
graphene-application-io = { path = "node-graph/libraries/application-io" }
core-types = { path = "node-graph/libraries/core-types" }
no-std-types = { path = "node-graph/libraries/no-std-types" }
raster-types = { path = "node-graph/libraries/raster-types" }
vector-types = { path = "node-graph/libraries/vector-types" }
graphic-types = { path = "node-graph/libraries/graphic-types" }
rendering = { path = "node-graph/libraries/rendering" }
brush-nodes = { path = "node-graph/nodes/brush" }
blending-nodes = { path = "node-graph/nodes/blending" }
graphene-core = { path = "node-graph/nodes/gcore" }
graphic-nodes = { path = "node-graph/nodes/graphic" }
text-nodes = { path = "node-graph/nodes/text" }
transform-nodes = { path = "node-graph/nodes/transform" }
vector-nodes = { path = "node-graph/nodes/vector" }
math-nodes = { path = "node-graph/nodes/math" }
path-bool-nodes = { path = "node-graph/nodes/path-bool" }
graph-craft = { path = "node-graph/graph-craft" }
graphene-raster-nodes = { path = "node-graph/graster-nodes" }
graphene-std = { path = "node-graph/gstd" }
graphene-svg-renderer = { path = "node-graph/gsvg-renderer" }
raster-nodes = { path = "node-graph/nodes/raster" }
graphene-std = { path = "node-graph/nodes/gstd" }
interpreted-executor = { path = "node-graph/interpreted-executor" }
node-macro = { path = "node-graph/node-macro" }
wgpu-executor = { path = "node-graph/wgpu-executor" }
Expand Down Expand Up @@ -209,16 +236,16 @@ unexpected_cfgs = { level = "allow", check-cfg = ['cfg(target_arch, values("spir
opt-level = 1

[profile.dev.package]
graphite-editor = { opt-level = 1 }
graphene-core-shaders = { opt-level = 1 }
graphene-std = { opt-level = 1 }
no-std-types = { opt-level = 1 }
core-types= { opt-level = 1 }
interpreted-executor = { opt-level = 1 } # This is a mitigation for https://github.com/rustwasm/wasm-pack/issues/981 which is needed because the node_registry function is too large
graphite-proc-macros = { opt-level = 1 }
image = { opt-level = 2 }
rustc-hash = { opt-level = 3 }
serde_derive = { opt-level = 1 }
specta-macros = { opt-level = 1 }
syn = { opt-level = 1 }
node-macro = { opt-level = 2 }

[profile.release]
lto = "thin"
Expand Down
2 changes: 1 addition & 1 deletion demo-artwork/changing-seasons.graphite

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion demo-artwork/isometric-fountain.graphite

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion demo-artwork/painted-dreams.graphite

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion demo-artwork/parametric-dunescape.graphite

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion demo-artwork/procedural-string-lights.graphite

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion demo-artwork/red-dress.graphite

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion demo-artwork/valley-of-spires.graphite

Large diffs are not rendered by default.

1 change: 0 additions & 1 deletion desktop/wrapper/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ gpu = ["graphite-editor/gpu", "graphene-std/shader-nodes"]
# Local dependencies
graphite-editor = { path = "../../editor", features = [
"gpu",
"vello",
] }
graphene-std = { workspace = true }
graph-craft = { workspace = true }
Expand Down
11 changes: 2 additions & 9 deletions editor/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,16 @@ repository = "https://github.com/GraphiteEditor/Graphite"
license = "Apache-2.0"

[features]
default = ["wasm"]
default = ["wasm", "gpu" ]
wasm = ["wasm-bindgen", "graphene-std/wasm"]
gpu = ["interpreted-executor/gpu", "wgpu-executor"]
resvg = ["graphene-std/resvg"]
vello = ["graphene-std/vello", "resvg"]

[dependencies]
# Local dependencies
graphite-proc-macros = { workspace = true }
graph-craft = { workspace = true }
interpreted-executor = { workspace = true }
graphene-std = { workspace = true } # NOTE: `graphene-core` should not be added here because `graphene-std` re-exports its contents
graphene-std = { workspace = true } # NOTE: `core-types` should not be added here because `graphene-std` re-exports its contents
preprocessor = { workspace = true }

# Workspace dependencies
Expand Down Expand Up @@ -59,8 +57,3 @@ env_logger = { workspace = true }
futures = { workspace = true }
tokio = { workspace = true }

[lints.rust]
# TODO: figure out why we check these features when they do not exist
unexpected_cfgs = { level = "warn", check-cfg = [
'cfg(feature, values("resvg", "vello"))',
] }
Original file line number Diff line number Diff line change
Expand Up @@ -449,7 +449,7 @@ impl TableRowLayout for Vector {

table_rows.push(vec![
TextLabel::new("Upstream Nested Layers").narrow(true).widget_holder(),
TextLabel::new(if self.upstream_nested_layers.is_some() {
TextLabel::new(if self.upstream_data.is_some() {
"Yes (this preserves references to its upstream nested layers for editing by tools)"
} else {
"No (this doesn't preserve references to its upstream nested layers for editing by tools)"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -881,24 +881,6 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
description: Cow::Borrowed("TODO"),
properties: None,
},
DocumentNodeDefinition {
identifier: "Memoize Impure",
category: "Debug",
node_template: NodeTemplate {
document_node: DocumentNode {
implementation: DocumentNodeImplementation::ProtoNode(memo::impure_memo::IDENTIFIER),
inputs: vec![NodeInput::value(TaggedValue::Raster(Default::default()), true)],
..Default::default()
},
persistent_node_metadata: DocumentNodePersistentMetadata {
input_metadata: vec![("Image", "TODO").into()],
output_names: vec!["Image".to_string()],
..Default::default()
},
},
description: Cow::Borrowed("TODO"),
properties: None,
},
#[cfg(feature = "gpu")]
DocumentNodeDefinition {
identifier: "Create GPU Surface",
Expand All @@ -915,7 +897,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
},
DocumentNode {
inputs: vec![NodeInput::node(NodeId(0), 0)],
implementation: DocumentNodeImplementation::ProtoNode(memo::impure_memo::IDENTIFIER),
implementation: DocumentNodeImplementation::ProtoNode(memo::memo::IDENTIFIER),
..Default::default()
},
]
Expand Down Expand Up @@ -986,7 +968,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
DocumentNode {
call_argument: generic!(T),
inputs: vec![NodeInput::node(NodeId(1), 0)],
implementation: DocumentNodeImplementation::ProtoNode(memo::impure_memo::IDENTIFIER),
implementation: DocumentNodeImplementation::ProtoNode(memo::memo::IDENTIFIER),
..Default::default()
},
]
Expand Down Expand Up @@ -1073,7 +1055,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
// category: "Raster: Adjustment",
// node_template: NodeTemplate {
// document_node: DocumentNode {
// implementation: DocumentNodeImplementation::proto("graphene_core::raster::CurvesNode"),
// implementation: DocumentNodeImplementation::proto("core_types::raster::CurvesNode"),
// inputs: vec![
// NodeInput::value(TaggedValue::Raster(Default::default()), true),
// NodeInput::value(TaggedValue::Curve(Default::default()), false),
Expand Down
Loading
Loading