Fix regression causing pasted images to have a zero-size transform (#2238)

* Use the identity matrix as the default for an image frame

* Fix all usages to be equivalent to their pre-refactor versions, opting to keep ZERO not IDENTITY as the default image size

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
This commit is contained in:
James Lindsay 2025-01-29 21:09:02 +00:00 committed by GitHub
parent dbf917ef71
commit c5a3c32114
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 10 additions and 5 deletions

View file

@ -767,7 +767,11 @@ impl MessageHandler<DocumentMessage, DocumentMessageData<'_>> for DocumentMessag
responses.add(DocumentMessage::AddTransaction);
let image_frame = ImageFrame { image, ..Default::default() };
let image_frame = ImageFrame {
image,
transform: DAffine2::IDENTITY,
alpha_blending: Default::default(),
};
let layer = graph_modification_utils::new_image_layer(image_frame, layer_node_id, self.new_layer_parent(true), responses);
if let Some(name) = name {

View file

@ -272,7 +272,7 @@ fn brush(_: Footprint, image: ImageFrameTable<Color>, bounds: ImageFrameTable<Co
let opaque_image = ImageFrame {
image: Image::new(bbox.size().x as u32, bbox.size().y as u32, Color::WHITE),
transform: background_bounds,
..Default::default()
alpha_blending: Default::default(),
};
let mut erase_restore_mask = opaque_image;

View file

@ -627,7 +627,7 @@ fn mandelbrot(footprint: Footprint) -> ImageFrameTable<Color> {
..Default::default()
},
transform: DAffine2::from_translation(offset) * DAffine2::from_scale(size),
..Default::default()
alpha_blending: Default::default(),
};
ImageFrameTable::new(result)

View file

@ -87,7 +87,8 @@ fn decode_image(_: (), data: Arc<[u8]>) -> ImageFrameTable<Color> {
height: image.height(),
..Default::default()
},
..Default::default()
transform: glam::DAffine2::IDENTITY,
alpha_blending: Default::default(),
};
ImageFrameTable::new(image)

View file

@ -161,7 +161,7 @@ fn node_registry() -> HashMap<ProtoNodeIdentifier, HashMap<NodeIOTypes, NodeCons
let empty_image = ImageFrame {
image: Image::new(bounds.x, bounds.y, Color::BLACK),
transform,
..Default::default()
alpha_blending: Default::default(),
};
let empty_image = ImageFrameTable::new(empty_image);
let final_image = ClonedNode::new(empty_image).then(complete_node);