summaryrefslogtreecommitdiffstats
path: root/examples/tour/renderer/debugger.rs
blob: 981247958690c36c9e41db44393deb217cd43e03 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
use super::Renderer;
use ggez::graphics::{Color, DrawMode, MeshBuilder, Rect};

impl iced::renderer::Debugger for Renderer<'_> {
    type Color = Color;

    fn explain(&mut self, layout: &iced::Layout<'_>, color: Color) {
        let bounds = layout.bounds();

        let mut debug_mesh =
            self.debug_mesh.take().unwrap_or(MeshBuilder::new());

        debug_mesh.rectangle(
            DrawMode::stroke(1.0),
            Rect {
                x: bounds.x,
                y: bounds.y,
                w: bounds.width,
                h: bounds.height,
            },
            color,
        );

        self.debug_mesh = Some(debug_mesh);

        for child in layout.children() {
            self.explain(&child, color);
        }
    }
}