diff options
Diffstat (limited to 'evc/src/view.rs')
-rw-r--r-- | evc/src/view.rs | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/evc/src/view.rs b/evc/src/view.rs index 983fe67..f37e57c 100644 --- a/evc/src/view.rs +++ b/evc/src/view.rs @@ -25,7 +25,7 @@ impl<T> View<&mut T> { let vert = self.size.0 > self.size.1; [ Self { - frame: unsafe { std::mem::transmute::<_, &mut T>(&mut self.frame) }, + frame: unsafe { std::mem::transmute::<&mut T, &mut T>(&mut self.frame) }, offset: self.offset, size: if vert { (self.size.0 / 2, self.size.1) @@ -34,7 +34,7 @@ impl<T> View<&mut T> { }, }, Self { - frame: unsafe { std::mem::transmute::<_, &mut T>(&mut self.frame) }, + frame: unsafe { std::mem::transmute::<&mut T, &mut T>(&mut self.frame) }, offset: if vert { (self.offset.0 + self.size.0 / 2, self.offset.1) } else { @@ -109,6 +109,13 @@ impl View<&mut Frame> { } } } + pub fn set_pixels(&mut self, pixels: &Vec<Pixel>) { + for x in 0..self.size.0 { + for y in 0..self.size.1 { + self[(x, y)] = pixels[x + y * self.size.0] + } + } + } } impl<T: Index<(usize, usize), Output = Pixel>> Index<(usize, usize)> for View<&T> { |