use egui::Ui; use crate::{Config, Diagnostics, Input, State, camera::CameraState}; pub fn draw_egui( ui: &mut Ui, config: &mut Config, state: &mut State, camera: &mut CameraState, diagnostics: &Diagnostics, input: &Input, ) { ui.heading("Config"); ui.add(egui::Slider::new(&mut config.brush_size, 1..=100).text("Brush size")); ui.add(egui::Slider::new(&mut config.fps, 1..=1000).text("Max FPS")); ui.label(format!("Real FPS: {}", diagnostics.fps)); ui.heading("Camera"); ui.add(egui::Slider::new(&mut camera.zoom, 0.0..=10.0).text("Zoom")); ui.add(egui::Slider::new(&mut camera.x, -1000.0..=1000.0).text("X")); ui.add(egui::Slider::new(&mut camera.y, -1000.0..=1000.0).text("Y")); ui.heading("Input"); ui.label(format!( "Mouse: x,y=({x}, {y}), lmb_pressed={lmb}", x = input.last_mouse_pos_on_screen.0, y = input.last_mouse_pos_on_screen.1, lmb = input.is_lmb_down )); ui.label(format!( "Mouse (board): x,y=({x}, {y})", x = input.last_mouse_pos_on_board.0, y = input.last_mouse_pos_on_board.1, )); }