Expand description
In-app diagnostic HUD overlay.
Activating F12 toggles a zero-allocation diagnostic overlay that displays:
- A rolling 120-frame timing histogram (layout, paint, GPU wait).
- Real-time dirty rect visualization.
- Live
WidgetArenaslot utilization and compaction telemetry.
When the render feature is enabled, DiagnosticHud::render_hud
encodes the overlay into a martensite_render::PaintList using simple
fill, stroke, and text commands.
§Example
use martensite_devtools::hud::{DiagnosticHud, FrameTiming, Rect};
let mut hud = DiagnosticHud::new();
hud.toggle();
assert!(hud.is_enabled());
hud.record_frame(FrameTiming {
layout_time_ns: 500_000,
paint_time_ns: 300_000,
gpu_wait_time_ns: 100_000,
total_time_ns: 900_000,
});
hud.add_dirty_rect(Rect::new(0, 0, 100, 100));Structs§
- Arena
Telemetry - Arena memory telemetry data.
- Diagnostic
Hud - The diagnostic HUD state.
- Dirty
Rect Tracker - Dirty rectangle tracking for visualization.
- Frame
Histogram - Rolling 120-frame timing histogram.
- Frame
Timing - Frame timing data for a single frame.
- Rect
- A rectangle for dirty rect tracking.