1use thiserror::Error;
4
5pub type RendererResult<T> = Result<T, RendererError>;
7
8#[derive(Error, Debug)]
10#[non_exhaustive]
11pub enum RendererError {
12 #[error("Renderer error: {0}")]
14 Generic(String),
15
16 #[error("Bad texture error: {0}")]
18 BadTexture(String),
19
20 #[error("Device lost")]
22 DeviceLost,
23
24 #[error("Invalid render state: {0}")]
26 InvalidRenderState(String),
27
28 #[error("{buffer} draw buffer length exceeds renderer limits")]
30 DrawBufferTooLarge { buffer: &'static str },
31
32 #[error("{buffer} draw buffer offset overflow")]
34 DrawBufferOffsetOverflow { buffer: &'static str },
35
36 #[error("Buffer creation failed: {0}")]
38 BufferCreationFailed(String),
39
40 #[error("Texture creation failed: {0}")]
42 TextureCreationFailed(String),
43
44 #[error("Pipeline creation failed: {0}")]
46 PipelineCreationFailed(String),
47
48 #[error("Shader compilation failed: {0}")]
50 ShaderCompilationFailed(String),
51
52 #[error("WGPU error")]
54 Wgpu(#[from] wgpu::Error),
55
56 #[error("Invalid texture ID: {0:?}")]
58 InvalidTextureId(dear_imgui_rs::TextureId),
59}
60
61