aboutsummaryrefslogtreecommitdiff
path: root/evc/src/view.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2022-12-06 08:41:48 +0100
committermetamuffin <metamuffin@disroot.org>2022-12-06 08:41:48 +0100
commitcc1f02a71bd3ad5235ac92dec2d9c516c74f8b1c (patch)
tree0c418181610ada30f8a8291fc7fb4e906dccd982 /evc/src/view.rs
parent5002d0df81f74418665e4e99179ba56d8e78cbe1 (diff)
downloadvideo-codec-experiments-cc1f02a71bd3ad5235ac92dec2d9c516c74f8b1c.tar
video-codec-experiments-cc1f02a71bd3ad5235ac92dec2d9c516c74f8b1c.tar.bz2
video-codec-experiments-cc1f02a71bd3ad5235ac92dec2d9c516c74f8b1c.tar.zst
decode somewhat works
Diffstat (limited to 'evc/src/view.rs')
-rw-r--r--evc/src/view.rs11
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> {