diff --git a/wgpu/src/image/raster.rs b/wgpu/src/image/raster.rs index 318cefb6..e13987b4 100644 --- a/wgpu/src/image/raster.rs +++ b/wgpu/src/image/raster.rs @@ -175,16 +175,20 @@ impl Operation { .unwrap_or_else(Self::empty)) } - fn perform(self, mut image: I) -> I + fn perform
( + self, + image: image_rs::ImageBuffer
>, + ) -> image_rs::ImageBuffer
>
where
- I: image_rs::GenericImage,
+ P: image_rs::Pixel + 'static,
{
use image_rs::imageops;
- if self.contains(Self::FLIP_DIAGONALLY) {
- imageops::flip_horizontal_in_place(&mut image);
- imageops::flip_vertical_in_place(&mut image);
- }
+ let mut image = if self.contains(Self::FLIP_DIAGONALLY) {
+ flip_diagonally(image)
+ } else {
+ image
+ };
if self.contains(Self::ROTATE_180) {
imageops::rotate180_in_place(&mut image);
@@ -197,3 +201,24 @@ impl Operation {
image
}
}
+
+fn flip_diagonally(
+ image: I,
+) -> image_rs::ImageBuffer