summaryrefslogtreecommitdiff
path: root/src/ui.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui.rs')
-rw-r--r--src/ui.rs33
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,
+ ));
+}