Skip to content

Commit 11346e2

Browse files
committed
Extract gvector-nodes
1 parent a5cf018 commit 11346e2

File tree

18 files changed

+230
-120
lines changed

18 files changed

+230
-120
lines changed

Cargo.lock

Lines changed: 23 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ members = [
1212
"node-graph/gpath-bool",
1313
"node-graph/graph-craft",
1414
"node-graph/graphene-cli",
15+
"node-graph/graster-nodes",
1516
"node-graph/gsvg-renderer",
1617
"node-graph/interpreted-executor",
1718
"node-graph/node-macro",
@@ -32,6 +33,7 @@ default-members = [
3233
"node-graph/gpath-bool",
3334
"node-graph/graph-craft",
3435
"node-graph/graphene-cli",
36+
"node-graph/graster-nodes",
3537
"node-graph/gsvg-renderer",
3638
"node-graph/interpreted-executor",
3739
"node-graph/node-macro",
@@ -51,6 +53,7 @@ graphene-element-nodes = { path = "node-graph/gelement-nodes" }
5153
graphene-math-nodes = { path = "node-graph/gmath-nodes" }
5254
graphene-path-bool = { path = "node-graph/gpath-bool" }
5355
graph-craft = { path = "node-graph/graph-craft" }
56+
graphene-raster-nodes = { path = "node-graph/graster-nodes" }
5457
graphene-std = { path = "node-graph/gstd" }
5558
graphene-svg-renderer = { path = "node-graph/gsvg-renderer" }
5659
interpreted-executor = { path = "node-graph/interpreted-executor" }
@@ -149,6 +152,7 @@ half = { version = "2.4.1", default-features = false, features = ["bytemuck", "s
149152
tinyvec = { version = "1" }
150153
criterion = { version = "0.5", features = ["html_reports"] }
151154
iai-callgrind = { version = "0.12.3" }
155+
ndarray = "0.16.1"
152156

153157
[profile.dev]
154158
opt-level = 1

editor/src/messages/portfolio/document_migration.rs

Lines changed: 48 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ const TEXT_REPLACEMENTS: &[(&str, &str)] = &[
2020
];
2121

2222
const REPLACEMENTS: &[(&str, &str)] = &[
23+
// math_nodes
2324
("graphene_core::ops::MathNode", "graphene_math_nodes::MathNode"),
2425
("graphene_core::ops::AddNode", "graphene_math_nodes::AddNode"),
2526
("graphene_core::ops::SubtractNode", "graphene_math_nodes::SubtractNode"),
@@ -60,41 +61,68 @@ const REPLACEMENTS: &[(&str, &str)] = &[
6061
("graphene_core::ops::GradientValueNode", "graphene_math_nodes::GradientValueNode"),
6162
("graphene_core::ops::StringValueNode", "graphene_math_nodes::StringValueNode"),
6263
("graphene_core::ops::DotProductNode", "graphene_math_nodes::DotProductNode"),
64+
// debug
6365
("graphene_core::ops::SizeOfNode", "graphene_core::debug::SizeOfNode"),
6466
("graphene_core::ops::SomeNode", "graphene_core::debug::SomeNode"),
6567
("graphene_core::ops::UnwrapNode", "graphene_core::debug::UnwrapNode"),
6668
("graphene_core::ops::CloneNode", "graphene_core::debug::CloneNode"),
69+
// ???
6770
("graphene_core::ops::ExtractXyNode", "graphene_core::extract_xy::ExtractXyNode"),
6871
("graphene_core::logic::LogicAndNode", "graphene_core::ops::LogicAndNode"),
6972
("graphene_core::logic::LogicNotNode", "graphene_core::ops::LogicNotNode"),
7073
("graphene_core::logic::LogicOrNode", "graphene_core::ops::LogicOrNode"),
7174
("graphene_core::ops::ConstructVector2", "graphene_core::ops::CoordinateValueNode"),
7275
("graphene_core::ops::Vector2ValueNode", "graphene_core::ops::CoordinateValueNode"),
73-
("graphene_core::raster::BlackAndWhiteNode", "graphene_core::raster::adjustments::BlackAndWhiteNode"),
74-
("graphene_core::raster::BlendNode", "graphene_core::raster::adjustments::BlendNode"),
7576
("graphene_core::raster::BlendModeNode", "graphene_element_nodes::blending_nodes::BlendModeNode"),
7677
("graphene_core::blending_nodes::BlendModeNode", "graphene_element_nodes::blending_nodes::BlendModeNode"),
7778
("graphene_core::raster::OpacityNode", "graphene_element_nodes::blending_nodes::OpacityNode"),
7879
("graphene_core::blending_nodes::OpacityNode", "graphene_element_nodes::blending_nodes::OpacityNode"),
7980
("graphene_core::raster::BlendingNode", "graphene_element_nodes::blending_nodes::BlendingNode"),
8081
("graphene_core::blending_nodes::BlendingNode", "graphene_element_nodes::blending_nodes::BlendingNode"),
81-
("graphene_core::raster::ChannelMixerNode", "graphene_core::raster::adjustments::ChannelMixerNode"),
82-
("graphene_core::raster::adjustments::ColorOverlayNode", "graphene_core::raster::adjustments::ColorOverlayNode"),
83-
("graphene_core::raster::ExposureNode", "graphene_core::raster::adjustments::ExposureNode"),
84-
("graphene_core::raster::ExtractChannelNode", "graphene_core::raster::adjustments::ExtractChannelNode"),
85-
("graphene_core::raster::GradientMapNode", "graphene_core::raster::adjustments::GradientMapNode"),
86-
("graphene_core::raster::HueSaturationNode", "graphene_core::raster::adjustments::HueSaturationNode"),
8782
("graphene_core::vector::GenerateHandlesNode", "graphene_core::vector::AutoTangentsNode"),
8883
("graphene_core::vector::RemoveHandlesNode", "graphene_core::vector::AutoTangentsNode"),
89-
("graphene_core::raster::InvertNode", "graphene_core::raster::adjustments::InvertNode"),
90-
("graphene_core::raster::InvertRGBNode", "graphene_core::raster::adjustments::InvertNode"),
91-
("graphene_core::raster::LevelsNode", "graphene_core::raster::adjustments::LevelsNode"),
92-
("graphene_core::raster::LuminanceNode", "graphene_core::raster::adjustments::LuminanceNode"),
93-
("graphene_core::raster::ExtractOpaqueNode", "graphene_core::raster::adjustments::MakeOpaqueNode"),
94-
("graphene_core::raster::PosterizeNode", "graphene_core::raster::adjustments::PosterizeNode"),
95-
("graphene_core::raster::ThresholdNode", "graphene_core::raster::adjustments::ThresholdNode"),
96-
("graphene_core::raster::VibranceNode", "graphene_core::raster::adjustments::VibranceNode"),
84+
// raster::adjustments
85+
("graphene_core::raster::adjustments::LuminanceNode", "graphene_raster_nodes::adjustments::LuminanceNode"),
86+
("graphene_core::raster::LuminanceNode", "graphene_raster_nodes::adjustments::LuminanceNode"),
87+
("graphene_core::raster::adjustments::ExtractChannelNode", "graphene_raster_nodes::adjustments::ExtractChannelNode"),
88+
("graphene_core::raster::ExtractChannelNode", "graphene_raster_nodes::adjustments::ExtractChannelNode"),
89+
("graphene_core::raster::adjustments::MakeOpaqueNode", "graphene_raster_nodes::adjustments::MakeOpaqueNode"),
90+
("graphene_core::raster::ExtractOpaqueNode", "graphene_raster_nodes::adjustments::MakeOpaqueNode"),
91+
(
92+
"graphene_core::raster::adjustments::BrightnessContrastNode",
93+
"graphene_raster_nodes::adjustments::BrightnessContrastNode",
94+
),
95+
("graphene_core::raster::adjustments::LevelsNode", "graphene_raster_nodes::adjustments::LevelsNode"),
96+
("graphene_core::raster::LevelsNode", "graphene_raster_nodes::adjustments::LevelsNode"),
97+
("graphene_core::raster::adjustments::BlackAndWhiteNode", "graphene_raster_nodes::adjustments::BlackAndWhiteNode"),
98+
("graphene_core::raster::BlackAndWhiteNode", "graphene_raster_nodes::adjustments::BlackAndWhiteNode"),
99+
("graphene_core::raster::adjustments::HueSaturationNode", "graphene_raster_nodes::adjustments::HueSaturationNode"),
100+
("graphene_core::raster::HueSaturationNode", "graphene_raster_nodes::adjustments::HueSaturationNode"),
101+
("graphene_core::raster::adjustments::InvertNode", "graphene_raster_nodes::adjustments::InvertNode"),
102+
("graphene_core::raster::InvertNode", "graphene_raster_nodes::adjustments::InvertNode"),
103+
("graphene_core::raster::InvertRGBNode", "graphene_raster_nodes::adjustments::InvertNode"),
104+
("graphene_core::raster::adjustments::ThresholdNode", "graphene_raster_nodes::adjustments::ThresholdNode"),
105+
("graphene_core::raster::ThresholdNode", "graphene_raster_nodes::adjustments::ThresholdNode"),
106+
("graphene_core::raster::adjustments::BlendNode", "graphene_raster_nodes::adjustments::BlendNode"),
107+
("graphene_core::raster::BlendNode", "graphene_raster_nodes::adjustments::BlendNode"),
108+
("graphene_core::raster::BlendColorPairNode", "graphene_raster_nodes::adjustments::BlendColorPairNode"),
109+
("graphene_core::raster::adjustments::BlendColorsNode", "graphene_raster_nodes::adjustments::BlendColorsNode"),
110+
("graphene_core::raster::BlendColorsNode", "graphene_raster_nodes::adjustments::BlendColorsNode"),
111+
("graphene_core::raster::adjustments::GradientMapNode", "graphene_raster_nodes::adjustments::GradientMapNode"),
112+
("graphene_core::raster::GradientMapNode", "graphene_raster_nodes::adjustments::GradientMapNode"),
113+
("graphene_core::raster::adjustments::VibranceNode", "graphene_raster_nodes::adjustments::VibranceNode"),
114+
("graphene_core::raster::VibranceNode", "graphene_raster_nodes::adjustments::VibranceNode"),
115+
("graphene_core::raster::adjustments::ChannelMixerNode", "graphene_raster_nodes::adjustments::ChannelMixerNode"),
116+
("graphene_core::raster::ChannelMixerNode", "graphene_raster_nodes::adjustments::ChannelMixerNode"),
117+
("graphene_core::raster::adjustments::SelectiveColorNode", "graphene_raster_nodes::adjustments::SelectiveColorNode"),
118+
("graphene_core::raster::adjustments::PosterizeNode", "graphene_raster_nodes::adjustments::PosterizeNode"),
119+
("graphene_core::raster::PosterizeNode", "graphene_raster_nodes::adjustments::PosterizeNode"),
120+
("graphene_core::raster::adjustments::ExposureNode", "graphene_raster_nodes::adjustments::ExposureNode"),
121+
("graphene_core::raster::ExposureNode", "graphene_raster_nodes::adjustments::ExposureNode"),
122+
("graphene_core::raster::adjustments::GenerateCurvesNode", "graphene_raster_nodes::generate_curves::GenerateCurvesNode"),
123+
("graphene_core::raster::adjustments::ColorOverlayNode", "graphene_raster_nodes::generate_curves::ColorOverlayNode"),
97124
("graphene_core::text::TextGeneratorNode", "graphene_core::text::TextNode"),
125+
// transform
98126
("graphene_core::transform::SetTransformNode", "graphene_element_nodes::transform_nodes::ReplaceTransformNode"),
99127
("graphene_core::transform::ReplaceTransformNode", "graphene_element_nodes::transform_nodes::ReplaceTransformNode"),
100128
("graphene_core::transform::TransformNode", "graphene_element_nodes::transform_nodes::TransformNode"),
@@ -106,12 +134,15 @@ const REPLACEMENTS: &[(&str, &str)] = &[
106134
),
107135
("graphene_core::transform::FreezeRealTimeNode", "graphene_element_nodes::transform_nodes::FreezeRealTimeNode"),
108136
("graphene_core::transform_nodes::FreezeRealTimeNode", "graphene_element_nodes::transform_nodes::FreezeRealTimeNode"),
137+
// animation
109138
("graphene_core::animation::RealTimeNode", "graphene_element_nodes::animation::RealTimeNode"),
110139
("graphene_core::animation::AnimationTimeNode", "graphene_element_nodes::animation::AnimationTimeNode"),
140+
// instance
111141
("graphene_core::instance::InstanceOnPointsNode", "graphene_element_nodes::instance::InstanceOnPointsNode"),
112142
("graphene_core::instance::InstanceRepeatNode", "graphene_element_nodes::instance::InstanceRepeatNode"),
113143
("graphene_core::instance::InstancePositionNode", "graphene_element_nodes::instance::InstancePositionNode"),
114144
("graphene_core::instance::InstanceIndexNode", "graphene_element_nodes::instance::InstanceIndexNode"),
145+
// ???
115146
("graphene_core::vector::SplinesFromPointsNode", "graphene_core::vector::SplineNode"),
116147
("graphene_core::vector::generator_nodes::EllipseGenerator", "graphene_core::vector::generator_nodes::EllipseNode"),
117148
("graphene_core::vector::generator_nodes::LineGenerator", "graphene_core::vector::generator_nodes::LineNode"),
@@ -127,6 +158,7 @@ const REPLACEMENTS: &[(&str, &str)] = &[
127158
("graphene_std::raster::MaskImageNode", "graphene_std::raster::MaskNode"),
128159
("graphene_core::vector::FlattenVectorElementsNode", "graphene_core::vector::FlattenPathNode"),
129160
("graphene_std::vector::BooleanOperationNode", "graphene_path_bool::BooleanOperationNode"),
161+
// element conversion
130162
("graphene_core::graphic_element::LayerNode", "graphene_element_nodes::conversion::LayerNode"),
131163
("graphene_core::graphic_element::ToElementNode", "graphene_element_nodes::conversion::ToElementNode"),
132164
("graphene_core::ToGraphicElementNode", "graphene_element_nodes::conversion::ToElementNode"),

node-graph/gcore/src/raster.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,10 @@ pub mod color {
1212
pub use super::*;
1313
}
1414

15-
pub mod adjustments;
1615
pub mod brush_cache;
17-
pub mod curve;
1816
pub mod image;
1917

2018
pub use self::image::Image;
21-
pub use adjustments::*;
2219

2320
pub trait Bitmap {
2421
type Pixel: Pixel;

node-graph/graph-craft/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ graphene-element-nodes = { workspace = true }
2020
graphene-path-bool = { workspace = true }
2121
graphene-application-io = { workspace = true }
2222
graphene-svg-renderer = { workspace = true }
23+
graphene-raster-nodes = { workspace = true }
2324

2425
# Workspace dependencies
2526
log = { workspace = true }

node-graph/graph-craft/src/document/value.rs

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ pub use dyn_any::StaticType;
66
pub use glam::{DAffine2, DVec2, IVec2, UVec2};
77
use graphene_application_io::SurfaceFrame;
88
use graphene_core::raster::brush_cache::BrushCache;
9-
use graphene_core::raster::{BlendMode, LuminanceCalculation};
109
use graphene_core::raster_types::CPU;
1110
use graphene_core::transform::ReferencePoint;
1211
use graphene_core::uuid::NodeId;
@@ -212,26 +211,26 @@ tagged_value! {
212211
BrushStrokes(Vec<graphene_core::vector::brush_stroke::BrushStroke>),
213212
BrushCache(BrushCache),
214213
DocumentNode(DocumentNode),
215-
Curve(graphene_core::raster::curve::Curve),
214+
Curve(graphene_raster_nodes::curve::Curve),
216215
Footprint(graphene_core::transform::Footprint),
217216
VectorModification(Box<graphene_core::vector::VectorModification>),
218217
FontCache(Arc<graphene_core::text::FontCache>),
219218
// ==========
220219
// ENUM TYPES
221220
// ==========
222-
BlendMode(BlendMode),
223-
LuminanceCalculation(LuminanceCalculation),
221+
BlendMode(graphene_core::blending::BlendMode),
222+
LuminanceCalculation(graphene_raster_nodes::adjustments::LuminanceCalculation),
224223
XY(graphene_core::extract_xy::XY),
225-
RedGreenBlue(graphene_core::raster::RedGreenBlue),
226-
RedGreenBlueAlpha(graphene_core::raster::RedGreenBlueAlpha),
224+
RedGreenBlue(graphene_raster_nodes::adjustments::RedGreenBlue),
225+
RedGreenBlueAlpha(graphene_raster_nodes::adjustments::RedGreenBlueAlpha),
227226
RealTimeMode(graphene_element_nodes::animation::RealTimeMode),
228-
NoiseType(graphene_core::raster::NoiseType),
229-
FractalType(graphene_core::raster::FractalType),
230-
CellularDistanceFunction(graphene_core::raster::CellularDistanceFunction),
231-
CellularReturnType(graphene_core::raster::CellularReturnType),
232-
DomainWarpType(graphene_core::raster::DomainWarpType),
233-
RelativeAbsolute(graphene_core::raster::RelativeAbsolute),
234-
SelectiveColorChoice(graphene_core::raster::SelectiveColorChoice),
227+
NoiseType(graphene_raster_nodes::adjustments::NoiseType),
228+
FractalType(graphene_raster_nodes::adjustments::FractalType),
229+
CellularDistanceFunction(graphene_raster_nodes::adjustments::CellularDistanceFunction),
230+
CellularReturnType(graphene_raster_nodes::adjustments::CellularReturnType),
231+
DomainWarpType(graphene_raster_nodes::adjustments::DomainWarpType),
232+
RelativeAbsolute(graphene_raster_nodes::adjustments::RelativeAbsolute),
233+
SelectiveColorChoice(graphene_raster_nodes::adjustments::SelectiveColorChoice),
235234
GridType(graphene_core::vector::misc::GridType),
236235
ArcType(graphene_core::vector::misc::ArcType),
237236
MergeByDistanceAlgorithm(graphene_core::vector::misc::MergeByDistanceAlgorithm),

node-graph/graster-nodes/Cargo.toml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
[package]
2+
name = "graphene-raster-nodes"
3+
version = "0.1.0"
4+
edition = "2024"
5+
description = "graphene raster data format"
6+
authors = ["Graphite Authors <[email protected]>"]
7+
license = "MIT OR Apache-2.0"
8+
9+
[features]
10+
default = ["serde"]
11+
serde = ["dep:serde"]
12+
13+
[dependencies]
14+
# Local dependencies
15+
dyn-any = { workspace = true }
16+
graphene-core = { workspace = true }
17+
node-macro = { workspace = true }
18+
19+
# Workspace dependencies
20+
glam = { workspace = true }
21+
specta = { workspace = true }
22+
image = { workspace = true }
23+
bytemuck = { workspace = true }
24+
ndarray = { workspace = true }
25+
bezier-rs = { workspace = true }
26+
rand = { workspace = true }
27+
rand_chacha = { workspace = true }
28+
fastnoise-lite = { workspace = true }
29+
30+
# Optional workspace dependencies
31+
serde = { workspace = true, optional = true, features = ["derive"] }
32+
33+
[dev-dependencies]
34+
tokio = { workspace = true }
35+
futures = { workspace = true }

0 commit comments

Comments
 (0)