1use thiserror::Error;
2
3use crate::render::graph::RenderGraphError;
4
5#[derive(Error, Debug)]
6pub enum RenderError {
7 #[error("error in surface")]
8 Surface(#[from] wgpu::SurfaceError),
9 #[error("error while getting window handle")]
10 Handle(#[from] wgpu::rwh::HandleError),
11 #[error("error during surface creation")]
12 CreateSurfaceError(#[from] wgpu::CreateSurfaceError),
13 #[error("error in render graph")]
14 Graph(#[from] RenderGraphError),
15 #[error("error while requesting device")]
16 RequestDevice(#[from] wgpu::RequestDeviceError),
17 #[error("error while requesting adaptor")]
18 RequestAdaptor,
19}
20
21impl RenderError {
22 pub fn should_exit(&self) -> bool {
23 matches!(self, RenderError::Surface(wgpu::SurfaceError::OutOfMemory))
24 }
25}