From 2c09942bc1af0a1f41c0e3ee52323deede19e6bd Mon Sep 17 00:00:00 2001 From: metamuffin Date: Mon, 5 May 2025 22:54:55 +0200 Subject: a --- mtree-test/src/lib.rs | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'mtree-test/src/lib.rs') diff --git a/mtree-test/src/lib.rs b/mtree-test/src/lib.rs index e69de29..1214cbf 100644 --- a/mtree-test/src/lib.rs +++ b/mtree-test/src/lib.rs @@ -0,0 +1,29 @@ +use glam::I16Vec2; + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub struct AbsRef { + pub off: I16Vec2, + pub frame: u64, +} + +pub struct Frame(pub Vec); +impl Frame { + pub fn index(&self, res: I16Vec2, p: I16Vec2) -> [usize; 3] { + let res = res.as_usizevec2(); + let p = p.as_usizevec2(); + + let ystride = res.y; + let ysize = res.x * ystride; + let uvstride = res.x / 2; + let usize = uvstride * (res.y / 2); + let puv = p / 2; + [ + p.x + p.y * ystride, + ysize + puv.x + puv.y * uvstride, + ysize + usize + puv.x + puv.y * uvstride, + ] + } + pub fn get(&self, res: I16Vec2, p: I16Vec2) -> [u8; 3] { + self.index(res, p).map(|i| self.0[i]) + } +} -- cgit v1.2.3-70-g09d2