mirror of
https://github.com/emilk/egui.git
synced 2026-06-26 22:53:14 -04:00
56 lines
1012 B
Rust
56 lines
1012 B
Rust
#[derive(Deserialize, Serialize)]
|
|
pub struct Vec2 {
|
|
pub x: f32,
|
|
pub y: f32,
|
|
}
|
|
|
|
#[derive(Deserialize, Serialize)]
|
|
pub struct Rect {
|
|
pub pos: Vec2,
|
|
pub size: Vec2,
|
|
}
|
|
|
|
impl Rect {
|
|
pub fn contains(&self, p: &Vec2) -> bool {
|
|
self.pos.x <= p.x
|
|
&& p.x <= self.pos.x + self.size.x
|
|
&& self.pos.y <= p.y
|
|
&& p.y <= self.pos.y + self.size.y
|
|
}
|
|
}
|
|
|
|
#[derive(Deserialize)]
|
|
pub struct Input {
|
|
pub screen_size: Vec2,
|
|
pub mouse_pos: Vec2,
|
|
}
|
|
|
|
#[derive(Serialize)]
|
|
#[serde(rename_all = "snake_case")]
|
|
pub enum TextAlign {
|
|
Start,
|
|
Center,
|
|
End,
|
|
}
|
|
|
|
#[derive(Serialize)]
|
|
#[serde(rename_all = "snake_case", tag = "kind")]
|
|
pub enum PaintCmd {
|
|
Clear {
|
|
fill_style: String,
|
|
},
|
|
RoundedRect {
|
|
fill_style: String,
|
|
pos: Vec2,
|
|
size: Vec2,
|
|
corner_radius: f32,
|
|
},
|
|
Text {
|
|
fill_style: String,
|
|
font: String,
|
|
pos: Vec2,
|
|
text: String,
|
|
text_align: TextAlign,
|
|
},
|
|
}
|