From 99de921f64530d15dc9e04b66eb4070ea9579404 Mon Sep 17 00:00:00 2001 From: gered Date: Sat, 11 Mar 2023 21:14:01 -0500 Subject: [PATCH] fix solid_blit pointer stuff i did not read the doc comments for pointer methods and mistakenly thought i needed to calculate raw byte offsets here, but actually it works in units of size T (where T in our case is either u8 or u32) --- ggdt/src/graphics/bitmap/blit.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ggdt/src/graphics/bitmap/blit.rs b/ggdt/src/graphics/bitmap/blit.rs index 99fcf3b..8597fdc 100644 --- a/ggdt/src/graphics/bitmap/blit.rs +++ b/ggdt/src/graphics/bitmap/blit.rs @@ -275,9 +275,9 @@ pub unsafe fn per_pixel_rotozoom_blit( impl Bitmap { pub unsafe fn solid_blit(&mut self, src: &Self, src_region: &Rect, dest_x: i32, dest_y: i32) { - let src_row_length = src_region.width as usize * Self::PIXEL_SIZE; - let src_pitch = src.width as usize * Self::PIXEL_SIZE; - let dest_pitch = self.width as usize * Self::PIXEL_SIZE; + let src_row_length = src_region.width as usize; + let src_pitch = src.width as usize; + let dest_pitch = self.width as usize; let mut src_pixels = src.pixels_at_ptr_unchecked(src_region.x, src_region.y); let mut dest_pixels = self.pixels_at_mut_ptr_unchecked(dest_x, dest_y);