Compare commits

...

2 commits

3 changed files with 73 additions and 1 deletions

View file

@ -18,6 +18,7 @@ pollster = "0.3"
winit_input_helper = "0.16.0" winit_input_helper = "0.16.0"
crossbeam-channel = "0.5.14" crossbeam-channel = "0.5.14"
chrono = "0.4.40" chrono = "0.4.40"
wgpu = "22.0"
[dependencies.image] [dependencies.image]
version = "0.24" version = "0.24"

View file

@ -387,7 +387,19 @@ impl App {
window.request_redraw(); window.request_redraw();
match renderer.render() { match renderer.render() {
Ok(_) => {} Ok(_) => {}
Err(e) => error!("Error rendering: {}", e), Err(
wgpu::SurfaceError::Lost | wgpu::SurfaceError::Outdated,
) => {
let size = renderer.size();
renderer.resize(size);
}
Err(wgpu::SurfaceError::OutOfMemory) => {
error!("Out of memory!");
elwt.exit();
}
Err(wgpu::SurfaceError::Timeout) => {
warn!("Surface timeout - skipping frame");
}
} }
} }
_ => {} _ => {}

View file

@ -149,6 +149,17 @@ impl Mul<v2> for f32 {
} }
} }
impl Mul<v2> for v2 {
type Output = v2;
fn mul(self, other: v2) -> v2 {
v2 {
x: self.x * other.x,
y: self.y * other.y,
}
}
}
impl Div<f32> for v2 { impl Div<f32> for v2 {
type Output = v2; type Output = v2;
@ -388,6 +399,17 @@ impl Mul<f32> for v2i {
} }
} }
impl Mul<v2i> for v2i {
type Output = v2i;
fn mul(self, other: v2i) -> v2i {
v2i {
x: self.x * other.x,
y: self.y * other.y,
}
}
}
impl From<v2i> for v2 { impl From<v2i> for v2 {
fn from(v: v2i) -> v2 { fn from(v: v2i) -> v2 {
v2 { v2 {
@ -584,6 +606,18 @@ impl Mul<v3> for f32 {
} }
} }
impl Mul<v3> for v3 {
type Output = v3;
fn mul(self, other: v3) -> v3 {
v3 {
x: self.x * other.x,
y: self.y * other.y,
z: self.z * other.z,
}
}
}
impl Div<f32> for v3 { impl Div<f32> for v3 {
type Output = v3; type Output = v3;
@ -797,6 +831,18 @@ impl Mul<f32> for v3i {
} }
} }
impl Mul<v3i> for v3i {
type Output = v3i;
fn mul(self, other: v3i) -> v3i {
v3i {
x: self.x * other.x,
y: self.y * other.y,
z: self.z * other.z,
}
}
}
impl From<v3i> for v3 { impl From<v3i> for v3 {
fn from(v: v3i) -> v3 { fn from(v: v3i) -> v3 {
v3 { v3 {
@ -1002,6 +1048,19 @@ impl Mul<v4> for f32 {
} }
} }
impl Mul<v4> for v4 {
type Output = v4;
fn mul(self, other: v4) -> v4 {
v4 {
x: self.x * other.x,
y: self.y * other.y,
z: self.z * other.z,
w: self.w * other.w,
}
}
}
impl MulAssign<f32> for v4 { impl MulAssign<f32> for v4 {
fn mul_assign(&mut self, other: f32) { fn mul_assign(&mut self, other: f32) {
self.x *= other; self.x *= other;