summaryrefslogtreecommitdiff
path: root/src/ui.rs
blob: d55c5fb6f281075dbfecbaddea9eb81788f8a478 (plain)
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
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,
    ));
}