aboutsummaryrefslogtreecommitdiff
path: root/evc/src/debug.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-05-05 15:09:54 +0200
committermetamuffin <metamuffin@disroot.org>2025-05-05 15:09:54 +0200
commit306f96164784a8cbf405e72fa4364d6523366e95 (patch)
tree51717fc139871baa438aad806f4923669ae0896c /evc/src/debug.rs
parent9cc089e2d6e841879e430b01d2f3d92c8820523e (diff)
downloadvideo-codec-experiments-306f96164784a8cbf405e72fa4364d6523366e95.tar
video-codec-experiments-306f96164784a8cbf405e72fa4364d6523366e95.tar.bz2
video-codec-experiments-306f96164784a8cbf405e72fa4364d6523366e95.tar.zst
old dir
Diffstat (limited to 'evc/src/debug.rs')
-rw-r--r--evc/src/debug.rs103
1 files changed, 0 insertions, 103 deletions
diff --git a/evc/src/debug.rs b/evc/src/debug.rs
deleted file mode 100644
index a7a9545..0000000
--- a/evc/src/debug.rs
+++ /dev/null
@@ -1,103 +0,0 @@
-use crate::{
- block::Block,
- format::ser::map_scalar8,
- frame::Frame,
- helpers::vector::Vec2,
- helpers::{matrix::Mat2, pixel::Pixel},
- view::View,
-};
-
-impl View<&mut Frame> {
- pub fn draw_box(&mut self, color: Pixel) {
- let w = self.size.x;
- let h = self.size.y;
- for x in 0..w {
- self[(x, 0)] = color;
- self[(x, h - 1)] = color;
- }
- for y in 0..h {
- self[(0, y)] = color;
- self[(w - 1, y)] = color;
- }
- }
-}
-
-impl Frame {
- pub fn draw_line(&mut self, start: Vec2<f32>, end: Vec2<f32>, color: Pixel) {
- let diff = end - start;
- let len = (diff.x * diff.x + diff.y * diff.y).sqrt();
- let normal = Vec2 {
- x: diff.x / len,
- y: diff.y / len,
- };
- let mut cursor = start.clone();
- let mut lc = 0.0;
- while lc < len {
- self.set(cursor.into(), color);
- lc += 0.5;
- cursor = cursor + normal.scale(0.5);
- }
- }
-}
-
-impl Pixel {
- pub const RED: Pixel = Pixel { r: 255, g: 0, b: 0 };
- pub const GREEN: Pixel = Pixel { r: 0, g: 255, b: 0 };
- pub const BLUE: Pixel = Pixel { r: 0, g: 0, b: 255 };
- pub const MAGENTA: Pixel = Pixel {
- r: 255,
- g: 0,
- b: 255,
- };
- pub const CYAN: Pixel = Pixel {
- r: 0,
- g: 255,
- b: 255,
- };
-}
-
-pub fn draw_debug(block: &Block, mut target: View<&mut Frame>) {
- match &block {
- Block::Literal(_) | Block::CompressedLiteral(_) => {
- target.draw_box(Pixel::GREEN);
- }
- Block::Split(box [a, b]) => {
- let [at, bt] = target.split_mut_unsafe();
- draw_debug(a, at);
- draw_debug(b, bt);
- }
- Block::Reference { translation } => {
- target.draw_box(Pixel::BLUE);
- target.frame.draw_line(
- target.center().into(),
- (target.center() + *translation).into(),
- Pixel::RED,
- )
- }
- Block::AdvancedReference(r) => {
- let mat = Mat2 {
- a: map_scalar8(r.transform.a),
- b: map_scalar8(r.transform.b),
- c: map_scalar8(r.transform.c),
- d: map_scalar8(r.transform.d),
- };
- let translation = Vec2 {
- x: map_scalar8(r.translation.x),
- y: map_scalar8(r.translation.y),
- };
- let halfsize = Into::<Vec2<f32>>::into(target.size).scale(0.5);
- let transform = |p| translation + mat.transform(p - halfsize) + halfsize;
- let (tl, tr, bl, br) = (
- transform(Vec2::<f32>::ZERO) + target.offset.into(),
- transform(target.size.x_only().into()) + target.offset.into(),
- transform(target.size.y_only().into()) + target.offset.into(),
- transform(target.size.into()) + target.offset.into(),
- );
- target.draw_box(Pixel::CYAN);
- target.frame.draw_line(tl, tr, Pixel::MAGENTA);
- target.frame.draw_line(tr, br, Pixel::MAGENTA);
- target.frame.draw_line(bl, br, Pixel::MAGENTA);
- target.frame.draw_line(tl, bl, Pixel::MAGENTA);
- }
- };
-}