use thiserror::Error;
pub type RenderResult<T> = Result<T, RenderError>;
#[derive(Debug, Error)]
pub enum RenderError {
#[error("No rendering backend available: {0}")]
NoBackend(String),
#[error("GPU initialization failed: {0}")]
GpuInit(String),
#[error("Shader compilation failed: {0}")]
Shader(String),
#[error("Surface error: {0}")]
Surface(String),
#[error("Failed to load resource: {0}")]
Resource(String),
#[error("Frame render failed: {0}")]
Frame(String),
#[error("Invalid viewport: {0}")]
Viewport(String),
}