diff --git a/Cargo.toml b/Cargo.toml index faeac043e..35c5e7040 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -150,7 +150,7 @@ petgraph = { version = "0.7.1", default-features = false, features = [ "graphmap", ] } half = { version = "2.4.1", default-features = false, features = ["bytemuck", "serde"] } -tinyvec = { version = "1" } +tinyvec = { version = "1", features = ["std"] } criterion = { version = "0.5", features = ["html_reports"] } iai-callgrind = { version = "0.12.3" } ndarray = "0.16.1" diff --git a/editor/src/messages/portfolio/document_migration.rs b/editor/src/messages/portfolio/document_migration.rs index fc8f42ff7..920d5fa68 100644 --- a/editor/src/messages/portfolio/document_migration.rs +++ b/editor/src/messages/portfolio/document_migration.rs @@ -62,6 +62,8 @@ const REPLACEMENTS: &[(&str, &str)] = &[ ("graphene_core::ops::NumberValueNode", "graphene_math_nodes::NumberValueNode"), ("graphene_core::ops::PercentageValueNode", "graphene_math_nodes::PercentageValueNode"), ("graphene_core::ops::CoordinateValueNode", "graphene_math_nodes::CoordinateValueNode"), + ("graphene_core::ops::ConstructVector2", "graphene_math_nodes::CoordinateValueNode"), + ("graphene_core::ops::Vector2ValueNode", "graphene_math_nodes::CoordinateValueNode"), ("graphene_core::ops::ColorValueNode", "graphene_math_nodes::ColorValueNode"), ("graphene_core::ops::GradientValueNode", "graphene_math_nodes::GradientValueNode"), ("graphene_core::ops::StringValueNode", "graphene_math_nodes::StringValueNode"), @@ -76,8 +78,6 @@ const REPLACEMENTS: &[(&str, &str)] = &[ ("graphene_core::logic::LogicAndNode", "graphene_core::ops::LogicAndNode"), ("graphene_core::logic::LogicNotNode", "graphene_core::ops::LogicNotNode"), ("graphene_core::logic::LogicOrNode", "graphene_core::ops::LogicOrNode"), - ("graphene_core::ops::ConstructVector2", "graphene_core::ops::CoordinateValueNode"), - ("graphene_core::ops::Vector2ValueNode", "graphene_core::ops::CoordinateValueNode"), ("graphene_core::raster::BlendModeNode", "graphene_core::blending_nodes::BlendModeNode"), ("graphene_core::raster::OpacityNode", "graphene_core::blending_nodes::OpacityNode"), ("graphene_core::raster::BlendingNode", "graphene_core::blending_nodes::BlendingNode"), @@ -121,8 +121,24 @@ const REPLACEMENTS: &[(&str, &str)] = &[ ("graphene_core::raster::PosterizeNode", "graphene_raster_nodes::adjustments::PosterizeNode"), ("graphene_core::raster::adjustments::ExposureNode", "graphene_raster_nodes::adjustments::ExposureNode"), ("graphene_core::raster::ExposureNode", "graphene_raster_nodes::adjustments::ExposureNode"), + ("graphene_core::raster::adjustments::ColorOverlayNode", "graphene_raster_nodes::adjustments::ColorOverlayNode"), + ("graphene_raster_nodes::generate_curves::ColorOverlayNode", "graphene_raster_nodes::adjustments::ColorOverlayNode"), + // raster ("graphene_core::raster::adjustments::GenerateCurvesNode", "graphene_raster_nodes::generate_curves::GenerateCurvesNode"), - ("graphene_core::raster::adjustments::ColorOverlayNode", "graphene_raster_nodes::generate_curves::ColorOverlayNode"), + ("graphene_std::dehaze::DehazeNode", "graphene_raster_nodes::dehaze::DehazeNode"), + ("graphene_std::filter::BlurNode", "graphene_raster_nodes::filter::BlurNode"), + ( + "graphene_std::image_color_palette::ImageColorPaletteNode", + "graphene_raster_nodes::image_color_palette::ImageColorPaletteNode", + ), + ("graphene_std::raster::SampleImageNode", "graphene_raster_nodes::std_nodes::SampleImageNode"), + ("graphene_std::raster::CombineChannelsNode", "graphene_raster_nodes::std_nodes::CombineChannelsNode"), + ("graphene_std::raster::MaskNode", "graphene_raster_nodes::std_nodes::MaskNode"), + ("graphene_std::raster::ExtendImageToBoundsNode", "graphene_raster_nodes::std_nodes::ExtendImageToBoundsNode"), + ("graphene_std::raster::EmptyImageNode", "graphene_raster_nodes::std_nodes::EmptyImageNode"), + ("graphene_std::raster::ImageValueNode", "graphene_raster_nodes::std_nodes::ImageValueNode"), + ("graphene_std::raster::NoisePatternNode", "graphene_raster_nodes::std_nodes::NoisePatternNode"), + ("graphene_std::raster::MandelbrotNode", "graphene_raster_nodes::std_nodes::MandelbrotNode"), // text ("graphene_core::text::TextGeneratorNode", "graphene_core::text::TextNode"), // transform diff --git a/node-graph/gcore/src/raster_types.rs b/node-graph/gcore/src/raster_types.rs index 4fb1fc4d5..937d89b2e 100644 --- a/node-graph/gcore/src/raster_types.rs +++ b/node-graph/gcore/src/raster_types.rs @@ -97,11 +97,20 @@ impl Raster { let RasterStorage::Gpu(gpu) = &self.data else { unreachable!() }; gpu.clone() } +} + +impl Raster { + #[cfg(feature = "wgpu")] pub fn is_empty(&self) -> bool { let data = self.data(); data.width() == 0 || data.height() == 0 } + #[cfg(not(feature = "wgpu"))] + pub fn is_empty(&self) -> bool { + true + } } + #[cfg(feature = "wgpu")] impl Deref for Raster { type Target = wgpu::Texture; @@ -110,6 +119,7 @@ impl Deref for Raster { self.data() } } + pub type RasterDataTable = Instances>; // TODO: Make this not dupliated