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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
use crate::engine::d2::{display::Graphics, input::Key, System};
use super::OverdrawGraphics;
/// Internal helper for shared debug logic across all platforms.
pub struct DebugLogic {
// platform: Box<dyn Platform>,
/// The normal Graphics saved by toggleOverdrawGraphics so it can restored.
saved_graphics: Option<Box<dyn Graphics>>,
}
impl DebugLogic {
pub fn init() {
let instance = Self {
// platform: Box::new(platform),
saved_graphics: None,
};
System::keyboard().down_signal().connect(
Box::new(move |event| {
if let Some(key) = event.key {
if key == Key::O && System::keyboard().is_down(Key::Control) {
if instance.toggle_overdraw_graphics() {
log::info!(
"Enabled overdraw visualizer, press Ctrl-O again to disable"
);
}
}
}
}),
false,
);
// instance
}
/// Toggles the overdraw debug renderer.
/// @return Whether the overdraw renderer was enabled.
pub fn toggle_overdraw_graphics(&self) -> bool {
// let renderer = self.platform.renderer();
if self.saved_graphics.is_some() {
// renderer.set_graphics(self.saved_graphics);
// self.saved_graphics = None;
// } else if renderer.graphics().is_some() {
// self.saved_graphics = renderer.get_graphics();
// renderer.set_graphics(OverdrawGraphics::new(self.saved_graphics));
// return true;
}
false
}
}