Skip to main content

ferroui_base/rendering/
renderer_debug_overlays.rs

1use bitflags::bitflags;
2
3bitflags! {
4    /// Represents the various types of overlays that can be drawn by a
5    /// renderer.
6    #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, Hash)]
7    pub struct RendererDebugOverlays: i32 {
8        /// Do not draw any overlay.
9        const NONE = 0;
10
11        /// Draw a FPS counter.
12        const FPS = 1 << 0;
13
14        /// Draw invalidated rectangles each frame.
15        const DIRTY_RECTS = 1 << 1;
16
17        /// Draw a graph of past layout times.
18        const LAYOUT_TIME_GRAPH = 1 << 2;
19
20        /// Draw a graph of past render times.
21        const RENDER_TIME_GRAPH = 1 << 3;
22    }
23}
24
25#[cfg(test)]
26mod tests {
27    use super::*;
28
29    #[test]
30    fn values_match_the_reference() {
31        assert_eq!(RendererDebugOverlays::NONE.bits(), 0);
32        assert_eq!(RendererDebugOverlays::FPS.bits(), 1);
33        assert_eq!(RendererDebugOverlays::DIRTY_RECTS.bits(), 2);
34        assert_eq!(RendererDebugOverlays::LAYOUT_TIME_GRAPH.bits(), 4);
35        assert_eq!(RendererDebugOverlays::RENDER_TIME_GRAPH.bits(), 8);
36        assert_eq!(RendererDebugOverlays::default(), RendererDebugOverlays::NONE);
37    }
38}