From 736ebd6102eb5df134acbda8aac94f034d5bebe4 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Wed, 7 May 2025 15:10:30 +0200 Subject: test2 --- mtree-test/src/bin/decode.rs | 66 -------------------------------------------- 1 file changed, 66 deletions(-) delete mode 100644 mtree-test/src/bin/decode.rs (limited to 'mtree-test/src/bin/decode.rs') diff --git a/mtree-test/src/bin/decode.rs b/mtree-test/src/bin/decode.rs deleted file mode 100644 index 992bebc..0000000 --- a/mtree-test/src/bin/decode.rs +++ /dev/null @@ -1,66 +0,0 @@ -use framework::{BitstreamFilter, bitstream_filter_main}; -use glam::{I16Vec2, i16vec2}; -use mtree_test::{BLOCK_SIZE, Frame, LastFrames, frame_to_frame_rect_copy}; -use std::{collections::VecDeque, io::Result}; - -fn main() -> Result<()> { - bitstream_filter_main::() -} - -struct Dec { - res: I16Vec2, - last: LastFrames, -} -impl BitstreamFilter for Dec { - const INPUT_CODEC_ID: &str = "V_VCEMTREE"; - const OUTPUT_CODEC_ID: &str = "V_UNCOMPRESSED"; - - fn new(width: u32, height: u32) -> Self { - Self { - res: i16vec2(width as i16, height as i16), - last: LastFrames { - frame_offset: 0, - frames: VecDeque::new(), - }, - } - } - fn process_block(&mut self, a: Vec) -> Vec { - let mut a = a.as_slice(); - let mut frame = Frame::new(self.res); - - for bx in 0..self.res.x / BLOCK_SIZE { - for by in 0..self.res.y / BLOCK_SIZE { - let boff = i16vec2(bx * BLOCK_SIZE, by * BLOCK_SIZE); - let brect = boff..boff + I16Vec2::splat(BLOCK_SIZE); - let kind = a[0]; - a = &a[1..]; - if kind == 0 { - let size = frame.import_rect(self.res, brect, &a); - a = &a[size..]; - } else { - let rframeindex = - u64::from_le_bytes([a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]]); - a = &a[8..]; - let offx = i16::from_le_bytes([a[0], a[1]]); - a = &a[2..]; - let offy = i16::from_le_bytes([a[0], a[1]]); - a = &a[2..]; - - let rframe = &self.last.frames[(rframeindex - self.last.frame_offset) as usize]; - frame_to_frame_rect_copy( - self.res, - &mut frame, - rframe, - I16Vec2::splat(BLOCK_SIZE), - boff, - i16vec2(offx, offy), - ); - } - } - } - - self.last.frames.push_back(frame.clone()); - - frame.0 - } -} -- cgit v1.2.3-70-g09d2