diff options
Diffstat (limited to 'src/ui.rs')
| -rw-r--r-- | src/ui.rs | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/ui.rs b/src/ui.rs new file mode 100644 index 0000000..d55c5fb --- /dev/null +++ b/src/ui.rs @@ -0,0 +1,33 @@ +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, + )); +} |
