summaryrefslogtreecommitdiff
path: root/src/ui.rs
diff options
context:
space:
mode:
authorKai Stevenson <kai@kaistevenson.com>2026-08-09 16:30:29 -0700
committerKai Stevenson <kai@kaistevenson.com>2026-08-09 16:30:29 -0700
commit167e31655b63aa4d4548532cf0410cea9fd145ca (patch)
tree2b9b3d3832404979fecfa3972464c37613d43db2 /src/ui.rs
parent2eff3a26da27f68355ee2316f956e1bdfb6f1b68 (diff)
drawing
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,
+ ));
+}