Skip to content

Commit 5cacab2

Browse files
committed
Instance tables refactor part 7: Rename "ImageFrame" -> "RasterData", "ImageFrameTable" -> "RasterDataType", and "RasterFrame" -> "RasterDataType"
1 parent 2696abc commit 5cacab2

34 files changed

+285
-281
lines changed

demo-artwork/changing-seasons.graphite

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

editor/src/messages/portfolio/document/document_message_handler.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ use glam::{DAffine2, DVec2, IVec2};
3030
use graph_craft::document::value::TaggedValue;
3131
use graph_craft::document::{NodeId, NodeInput, NodeNetwork, OldNodeNetwork};
3232
use graphene_core::raster::BlendMode;
33-
use graphene_core::raster::image::ImageFrameTable;
33+
use graphene_core::raster::image::RasterDataTable;
3434
use graphene_core::vector::style::ViewMode;
3535
use graphene_std::renderer::{ClickTarget, Quad};
3636
use graphene_std::vector::{PointId, path_bool_lib};
@@ -864,7 +864,7 @@ impl MessageHandler<DocumentMessage, DocumentMessageData<'_>> for DocumentMessag
864864

865865
responses.add(DocumentMessage::AddTransaction);
866866

867-
let layer = graph_modification_utils::new_image_layer(ImageFrameTable::new(image), layer_node_id, self.new_layer_parent(true), responses);
867+
let layer = graph_modification_utils::new_image_layer(RasterDataTable::new(image), layer_node_id, self.new_layer_parent(true), responses);
868868

869869
if let Some(name) = name {
870870
responses.add(NodeGraphMessage::SetDisplayName {

editor/src/messages/portfolio/document/graph_operation/graph_operation_message.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use bezier_rs::Subpath;
66
use glam::{DAffine2, DVec2, IVec2};
77
use graph_craft::document::NodeId;
88
use graphene_core::raster::BlendMode;
9-
use graphene_core::raster::image::ImageFrameTable;
9+
use graphene_core::raster::image::RasterDataTable;
1010
use graphene_core::text::{Font, TypesettingConfig};
1111
use graphene_core::vector::PointId;
1212
use graphene_core::vector::VectorModificationType;
@@ -66,7 +66,7 @@ pub enum GraphOperationMessage {
6666
},
6767
NewBitmapLayer {
6868
id: NodeId,
69-
image_frame: ImageFrameTable<Color>,
69+
image_frame: RasterDataTable<Color>,
7070
parent: LayerNodeIdentifier,
7171
insert_index: usize,
7272
},

editor/src/messages/portfolio/document/graph_operation/utility_types.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use graph_craft::concrete;
99
use graph_craft::document::value::TaggedValue;
1010
use graph_craft::document::{NodeId, NodeInput};
1111
use graphene_core::raster::BlendMode;
12-
use graphene_core::raster::image::ImageFrameTable;
12+
use graphene_core::raster::image::RasterDataTable;
1313
use graphene_core::text::{Font, TypesettingConfig};
1414
use graphene_core::vector::brush_stroke::BrushStroke;
1515
use graphene_core::vector::style::{Fill, Stroke};
@@ -209,11 +209,11 @@ impl<'a> ModifyInputsContext<'a> {
209209
self.network_interface.move_node_to_chain_start(&stroke_id, layer, &[]);
210210
}
211211

212-
pub fn insert_image_data(&mut self, image_frame: ImageFrameTable<Color>, layer: LayerNodeIdentifier) {
212+
pub fn insert_image_data(&mut self, image_frame: RasterDataTable<Color>, layer: LayerNodeIdentifier) {
213213
let transform = resolve_document_node_type("Transform").expect("Transform node does not exist").default_node_template();
214214
let image = resolve_document_node_type("Image")
215215
.expect("Image node does not exist")
216-
.node_template_input_override([Some(NodeInput::value(TaggedValue::None, false)), Some(NodeInput::value(TaggedValue::ImageFrame(image_frame), false))]);
216+
.node_template_input_override([Some(NodeInput::value(TaggedValue::None, false)), Some(NodeInput::value(TaggedValue::RasterData(image_frame), false))]);
217217

218218
let image_id = NodeId::new();
219219
self.network_interface.insert_node(image_id, image, &[]);

editor/src/messages/portfolio/document/node_graph/document_node_definitions.rs

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use graph_craft::concrete;
1515
use graph_craft::document::value::*;
1616
use graph_craft::document::*;
1717
use graphene_core::raster::brush_cache::BrushCache;
18-
use graphene_core::raster::image::ImageFrameTable;
18+
use graphene_core::raster::image::RasterDataTable;
1919
use graphene_core::raster::{CellularDistanceFunction, CellularReturnType, Color, DomainWarpType, FractalType, NoiseType, RedGreenBlueAlpha};
2020
use graphene_core::text::{Font, TypesettingConfig};
2121
use graphene_core::transform::Footprint;
@@ -608,8 +608,8 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
608608
exports: vec![NodeInput::node(NodeId(3), 0)],
609609
nodes: [
610610
DocumentNode {
611-
inputs: vec![NodeInput::network(concrete!(ImageFrameTable<Color>), 0)],
612-
implementation: DocumentNodeImplementation::ProtoNode(ProtoNodeIdentifier::new("graphene_core::ops::IntoNode<_, ImageFrameTable<SRGBA8>>")),
611+
inputs: vec![NodeInput::network(concrete!(RasterDataTable<Color>), 0)],
612+
implementation: DocumentNodeImplementation::ProtoNode(ProtoNodeIdentifier::new("graphene_core::ops::IntoNode<_, RasterDataTable<SRGBA8>>")),
613613
..Default::default()
614614
},
615615
DocumentNode {
@@ -636,7 +636,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
636636
.collect(),
637637
..Default::default()
638638
}),
639-
inputs: vec![NodeInput::value(TaggedValue::ImageFrame(ImageFrameTable::default()), true)],
639+
inputs: vec![NodeInput::value(TaggedValue::RasterData(RasterDataTable::default()), true)],
640640
..Default::default()
641641
},
642642
persistent_node_metadata: DocumentNodePersistentMetadata {
@@ -852,7 +852,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
852852
nodes: [
853853
DocumentNode {
854854
inputs: vec![
855-
NodeInput::network(concrete!(ImageFrameTable<Color>), 0),
855+
NodeInput::network(concrete!(RasterDataTable<Color>), 0),
856856
NodeInput::value(TaggedValue::RedGreenBlueAlpha(RedGreenBlueAlpha::Red), false),
857857
],
858858
implementation: DocumentNodeImplementation::ProtoNode(ProtoNodeIdentifier::new("graphene_core::raster::adjustments::ExtractChannelNode")),
@@ -861,7 +861,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
861861
},
862862
DocumentNode {
863863
inputs: vec![
864-
NodeInput::network(concrete!(ImageFrameTable<Color>), 0),
864+
NodeInput::network(concrete!(RasterDataTable<Color>), 0),
865865
NodeInput::value(TaggedValue::RedGreenBlueAlpha(RedGreenBlueAlpha::Green), false),
866866
],
867867
implementation: DocumentNodeImplementation::ProtoNode(ProtoNodeIdentifier::new("graphene_core::raster::adjustments::ExtractChannelNode")),
@@ -870,7 +870,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
870870
},
871871
DocumentNode {
872872
inputs: vec![
873-
NodeInput::network(concrete!(ImageFrameTable<Color>), 0),
873+
NodeInput::network(concrete!(RasterDataTable<Color>), 0),
874874
NodeInput::value(TaggedValue::RedGreenBlueAlpha(RedGreenBlueAlpha::Blue), false),
875875
],
876876
implementation: DocumentNodeImplementation::ProtoNode(ProtoNodeIdentifier::new("graphene_core::raster::adjustments::ExtractChannelNode")),
@@ -879,7 +879,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
879879
},
880880
DocumentNode {
881881
inputs: vec![
882-
NodeInput::network(concrete!(ImageFrameTable<Color>), 0),
882+
NodeInput::network(concrete!(RasterDataTable<Color>), 0),
883883
NodeInput::value(TaggedValue::RedGreenBlueAlpha(RedGreenBlueAlpha::Alpha), false),
884884
],
885885
implementation: DocumentNodeImplementation::ProtoNode(ProtoNodeIdentifier::new("graphene_core::raster::adjustments::ExtractChannelNode")),
@@ -893,7 +893,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
893893
.collect(),
894894
..Default::default()
895895
}),
896-
inputs: vec![NodeInput::value(TaggedValue::ImageFrame(ImageFrameTable::default()), true)],
896+
inputs: vec![NodeInput::value(TaggedValue::RasterData(RasterDataTable::default()), true)],
897897
..Default::default()
898898
},
899899
persistent_node_metadata: DocumentNodePersistentMetadata {
@@ -959,13 +959,13 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
959959
exports: vec![NodeInput::node(NodeId(0), 0), NodeInput::node(NodeId(1), 0)],
960960
nodes: [
961961
DocumentNode {
962-
inputs: vec![NodeInput::network(concrete!(ImageFrameTable<Color>), 0), NodeInput::value(TaggedValue::XY(XY::X), false)],
962+
inputs: vec![NodeInput::network(concrete!(RasterDataTable<Color>), 0), NodeInput::value(TaggedValue::XY(XY::X), false)],
963963
implementation: DocumentNodeImplementation::ProtoNode(ProtoNodeIdentifier::new("graphene_core::ops::ExtractXyNode")),
964964
manual_composition: Some(generic!(T)),
965965
..Default::default()
966966
},
967967
DocumentNode {
968-
inputs: vec![NodeInput::network(concrete!(ImageFrameTable<Color>), 0), NodeInput::value(TaggedValue::XY(XY::Y), false)],
968+
inputs: vec![NodeInput::network(concrete!(RasterDataTable<Color>), 0), NodeInput::value(TaggedValue::XY(XY::Y), false)],
969969
implementation: DocumentNodeImplementation::ProtoNode(ProtoNodeIdentifier::new("graphene_core::ops::ExtractXyNode")),
970970
manual_composition: Some(generic!(T)),
971971
..Default::default()
@@ -978,7 +978,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
978978

979979
..Default::default()
980980
}),
981-
inputs: vec![NodeInput::value(TaggedValue::ImageFrame(ImageFrameTable::default()), true)],
981+
inputs: vec![NodeInput::value(TaggedValue::RasterData(RasterDataTable::default()), true)],
982982
..Default::default()
983983
},
984984
persistent_node_metadata: DocumentNodePersistentMetadata {
@@ -1029,7 +1029,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
10291029
exports: vec![NodeInput::node(NodeId(0), 0)],
10301030
nodes: vec![DocumentNode {
10311031
inputs: vec![
1032-
NodeInput::network(concrete!(ImageFrameTable<Color>), 0),
1032+
NodeInput::network(concrete!(RasterDataTable<Color>), 0),
10331033
NodeInput::network(concrete!(Vec<graphene_core::vector::brush_stroke::BrushStroke>), 1),
10341034
NodeInput::network(concrete!(BrushCache), 2),
10351035
],
@@ -1044,7 +1044,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
10441044
..Default::default()
10451045
}),
10461046
inputs: vec![
1047-
NodeInput::value(TaggedValue::ImageFrame(ImageFrameTable::default()), true),
1047+
NodeInput::value(TaggedValue::RasterData(RasterDataTable::default()), true),
10481048
NodeInput::value(TaggedValue::BrushStrokes(Vec::new()), false),
10491049
NodeInput::value(TaggedValue::BrushCache(BrushCache::new_proto()), false),
10501050
],
@@ -1083,7 +1083,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
10831083
node_template: NodeTemplate {
10841084
document_node: DocumentNode {
10851085
implementation: DocumentNodeImplementation::proto("graphene_core::memo::MemoNode"),
1086-
inputs: vec![NodeInput::value(TaggedValue::ImageFrame(ImageFrameTable::default()), true)],
1086+
inputs: vec![NodeInput::value(TaggedValue::RasterData(RasterDataTable::default()), true)],
10871087
manual_composition: Some(concrete!(Context)),
10881088
..Default::default()
10891089
},
@@ -1102,7 +1102,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
11021102
node_template: NodeTemplate {
11031103
document_node: DocumentNode {
11041104
implementation: DocumentNodeImplementation::proto("graphene_core::memo::ImpureMemoNode"),
1105-
inputs: vec![NodeInput::value(TaggedValue::ImageFrame(ImageFrameTable::default()), true)],
1105+
inputs: vec![NodeInput::value(TaggedValue::RasterData(RasterDataTable::default()), true)],
11061106
manual_composition: Some(concrete!(Context)),
11071107
..Default::default()
11081108
},
@@ -1784,7 +1784,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
17841784
..Default::default()
17851785
},
17861786
DocumentNode {
1787-
inputs: vec![NodeInput::network(concrete!(ImageFrameTable<Color>), 0), NodeInput::node(NodeId(0), 0)],
1787+
inputs: vec![NodeInput::network(concrete!(RasterDataTable<Color>), 0), NodeInput::node(NodeId(0), 0)],
17881788
manual_composition: Some(generic!(T)),
17891789
implementation: DocumentNodeImplementation::ProtoNode(ProtoNodeIdentifier::new("wgpu_executor::UploadTextureNode")),
17901790
..Default::default()
@@ -1802,7 +1802,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
18021802
.collect(),
18031803
..Default::default()
18041804
}),
1805-
inputs: vec![NodeInput::value(TaggedValue::ImageFrame(ImageFrameTable::default()), true)],
1805+
inputs: vec![NodeInput::value(TaggedValue::RasterData(RasterDataTable::default()), true)],
18061806
..Default::default()
18071807
},
18081808
persistent_node_metadata: DocumentNodePersistentMetadata {
@@ -1882,7 +1882,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
18821882
// document_node: DocumentNode {
18831883
// implementation: DocumentNodeImplementation::proto("graphene_core::raster::CurvesNode"),
18841884
// inputs: vec![
1885-
// NodeInput::value(TaggedValue::ImageFrame(ImageFrameTable::default()), true),
1885+
// NodeInput::value(TaggedValue::RasterData(RasterDataTable::default()), true),
18861886
// NodeInput::value(TaggedValue::Curve(Default::default()), false),
18871887
// ],
18881888
// ..Default::default()
@@ -2646,7 +2646,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
26462646
// exports: vec![NodeInput::node(NodeId(1), 0)],
26472647
// nodes: [
26482648
// DocumentNode {
2649-
// inputs: vec![NodeInput::network(concrete!(ImageFrameTable<Color>), 0)],
2649+
// inputs: vec![NodeInput::network(concrete!(RasterDataTable<Color>), 0)],
26502650
// implementation: DocumentNodeImplementation::proto("graphene_core::memo::MonitorNode"),
26512651
// manual_composition: Some(concrete!(Context)),
26522652
// skip_deduplication: true,
@@ -2684,7 +2684,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
26842684
// ..Default::default()
26852685
// }),
26862686
// inputs: vec![
2687-
// NodeInput::value(TaggedValue::ImageFrame(ImageFrameTable::default()), true),
2687+
// NodeInput::value(TaggedValue::RasterData(RasterDataTable::default()), true),
26882688
// NodeInput::scope("editor-api"),
26892689
// NodeInput::value(TaggedValue::ImaginateController(Default::default()), false),
26902690
// NodeInput::value(TaggedValue::F64(0.), false), // Remember to keep index used in `ImaginateRandom` updated with this entry's index

editor/src/messages/portfolio/document/node_graph/node_properties.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ use graph_craft::Type;
1212
use graph_craft::document::value::TaggedValue;
1313
use graph_craft::document::{DocumentNode, DocumentNodeImplementation, NodeId, NodeInput};
1414
use graphene_core::raster::curve::Curve;
15-
use graphene_core::raster::image::ImageFrameTable;
15+
use graphene_core::raster::image::RasterDataTable;
1616
use graphene_core::raster::{
1717
BlendMode, CellularDistanceFunction, CellularReturnType, Color, DomainWarpType, FractalType, LuminanceCalculation, NoiseType, RedGreenBlue, RedGreenBlueAlpha, RelativeAbsolute,
1818
SelectiveColorChoice,
@@ -22,14 +22,14 @@ use graphene_core::vector::generator_nodes::grid;
2222
use graphene_core::vector::misc::CentroidType;
2323
use graphene_core::vector::style::{GradientType, LineCap, LineJoin};
2424
use graphene_std::animation::RealTimeMode;
25-
use graphene_std::application_io::TextureFrameTable;
25+
use graphene_std::application_io::TextureDataTable;
2626
use graphene_std::ops::XY;
2727
use graphene_std::transform::{Footprint, ReferencePoint};
2828
use graphene_std::vector::VectorDataTable;
2929
use graphene_std::vector::misc::ArcType;
3030
use graphene_std::vector::misc::{BooleanOperation, GridType};
3131
use graphene_std::vector::style::{Fill, FillChoice, FillType, GradientStops};
32-
use graphene_std::{GraphicGroupTable, NodeInputDecleration, RasterFrame};
32+
use graphene_std::{GraphicGroupTable, NodeInputDecleration, RasterDataType};
3333

3434
pub(crate) fn string_properties(text: &str) -> Vec<LayoutGroup> {
3535
let widget = TextLabel::new(text).widget_holder();
@@ -190,15 +190,15 @@ pub(crate) fn property_from_type(
190190
// GRAPHICAL DATA TYPES
191191
// ====================
192192
Some(x) if x == TypeId::of::<VectorDataTable>() => vector_data_widget(default_info).into(),
193-
Some(x) if x == TypeId::of::<RasterFrame>() || x == TypeId::of::<ImageFrameTable<Color>>() || x == TypeId::of::<TextureFrameTable>() => raster_widget(default_info).into(),
193+
Some(x) if x == TypeId::of::<RasterDataType>() || x == TypeId::of::<RasterDataTable<Color>>() || x == TypeId::of::<TextureDataTable>() => raster_widget(default_info).into(),
194194
Some(x) if x == TypeId::of::<GraphicGroupTable>() => group_widget(default_info).into(),
195195
// ============
196196
// STRUCT TYPES
197197
// ============
198198
Some(x) if x == TypeId::of::<Color>() => color_widget(default_info, ColorInput::default().allow_none(false)),
199199
Some(x) if x == TypeId::of::<Option<Color>>() => color_widget(default_info, ColorInput::default().allow_none(true)),
200200
Some(x) if x == TypeId::of::<GradientStops>() => color_widget(default_info, ColorInput::default().allow_none(false)),
201-
Some(x) if x == TypeId::of::<Font>() => font_widget(default_info).into(),
201+
Some(x) if x == TypeId::of::<Font>() => font_widget(default_info),
202202
Some(x) if x == TypeId::of::<Curve>() => curve_widget(default_info),
203203
Some(x) if x == TypeId::of::<Footprint>() => footprint_widget(default_info, &mut extra_widgets),
204204
// ===============================

editor/src/messages/portfolio/document/node_graph/node_properties_imaginate.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@
263263

264264
// // let transform = context
265265
// // .executor
266-
// // .introspect_node_in_network(context.network, &imaginate_node, |network| network.inputs.first().copied(), |frame: &ImageFrame<Color>| frame.transform)
266+
// // .introspect_node_in_network(context.network, &imaginate_node, |network| network.inputs.first().copied(), |frame: &RasterData<Color>| frame.transform)
267267
// // .unwrap_or_default();
268268
// let image_size = context
269269
// .executor
@@ -283,7 +283,7 @@
283283
// .map(|(node_id, _)| node_id)
284284
// .copied()
285285
// },
286-
// |frame: &IORecord<(), ImageFrame<Color>>| (frame.output.image.width, frame.output.image.height),
286+
// |frame: &IORecord<(), RasterData<Color>>| (frame.output.image.width, frame.output.image.height),
287287
// )
288288
// .unwrap_or_default();
289289

editor/src/messages/portfolio/document/node_graph/utility_types.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ pub enum FrontendGraphDataType {
1717
impl FrontendGraphDataType {
1818
fn with_type(input: &Type) -> Self {
1919
match TaggedValue::from_type_or_none(input) {
20-
TaggedValue::Image(_) | TaggedValue::ImageFrame(_) => Self::Raster,
20+
TaggedValue::Image(_) | TaggedValue::RasterData(_) => Self::Raster,
2121
TaggedValue::Subpaths(_) | TaggedValue::VectorData(_) => Self::VectorData,
2222
TaggedValue::U32(_)
2323
| TaggedValue::U64(_)

editor/src/messages/portfolio/portfolio_message_handler.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -485,7 +485,6 @@ impl MessageHandler<PortfolioMessage, PortfolioMessageData<'_>> for PortfolioMes
485485
("graphene_core::raster::GradientMapNode", "graphene_core::raster::adjustments::GradientMapNode"),
486486
("graphene_core::raster::HueSaturationNode", "graphene_core::raster::adjustments::HueSaturationNode"),
487487
("graphene_core::raster::InvertNode", "graphene_core::raster::adjustments::InvertNode"),
488-
// ("graphene_core::raster::IndexNode", "graphene_core::raster::adjustments::IndexNode"),
489488
("graphene_core::raster::InvertRGBNode", "graphene_core::raster::adjustments::InvertNode"),
490489
("graphene_core::raster::LevelsNode", "graphene_core::raster::adjustments::LevelsNode"),
491490
("graphene_core::raster::LuminanceNode", "graphene_core::raster::adjustments::LuminanceNode"),

editor/src/messages/portfolio/spreadsheet/spreadsheet_message_handler.rs

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,10 @@ use graphene_core::Context;
77
use graphene_core::GraphicGroupTable;
88
use graphene_core::instances::Instances;
99
use graphene_core::memo::IORecord;
10+
use graphene_core::raster::Image;
1011
use graphene_core::vector::{VectorData, VectorDataTable};
1112
use graphene_core::{Artboard, ArtboardGroupTable, GraphicElement};
13+
use graphene_std::Color;
1214
use std::any::Any;
1315
use std::sync::Arc;
1416

@@ -154,7 +156,7 @@ impl InstanceLayout for GraphicElement {
154156
match self {
155157
Self::GraphicGroup(instances) => instances.identifier(),
156158
Self::VectorData(instances) => instances.identifier(),
157-
Self::RasterFrame(_) => "RasterFrame".to_string(),
159+
Self::RasterDataType(_) => "RasterDataType".to_string(),
158160
}
159161
}
160162
// Don't put a breadcrumb for GraphicElement
@@ -165,7 +167,7 @@ impl InstanceLayout for GraphicElement {
165167
match self {
166168
Self::GraphicGroup(instances) => instances.layout_with_breadcrumb(data),
167169
Self::VectorData(instances) => instances.layout_with_breadcrumb(data),
168-
Self::RasterFrame(_) => label("Raster frame not supported"),
170+
Self::RasterDataType(_) => label("Raster frame not supported"),
169171
}
170172
}
171173
}
@@ -225,6 +227,19 @@ impl InstanceLayout for VectorData {
225227
}
226228
}
227229

230+
impl InstanceLayout for Image<Color> {
231+
fn type_name() -> &'static str {
232+
"Image"
233+
}
234+
fn identifier(&self) -> String {
235+
format!("Image (width={}, height={})", self.width, self.height)
236+
}
237+
fn compute_layout(&self, _data: &mut LayoutData) -> Vec<LayoutGroup> {
238+
let rows = vec![vec![TextLabel::new(format!("Image (width={}, height={})", self.width, self.height)).widget_holder()]];
239+
vec![LayoutGroup::Table { rows }]
240+
}
241+
}
242+
228243
impl InstanceLayout for Artboard {
229244
fn type_name() -> &'static str {
230245
"Artboard"

0 commit comments

Comments
 (0)