Err when a X connection cannot be created instead of panicking
This commit is contained in:
parent
27385894ac
commit
b9a4f5fbe9
4 changed files with 48 additions and 12 deletions
11
src/lib.rs
11
src/lib.rs
|
|
@ -106,11 +106,12 @@ pub trait GlContext {
|
|||
}
|
||||
|
||||
/// Error that can happen while creating a window or a headless renderer.
|
||||
#[derive(Clone, Debug, PartialEq, Eq)]
|
||||
#[derive(Debug)]
|
||||
pub enum CreationError {
|
||||
OsError(String),
|
||||
/// TODO: remove this error
|
||||
NotSupported,
|
||||
NoBackendAvailable(Box<std::error::Error + Send>),
|
||||
RobustnessNotSupported,
|
||||
OpenGlVersionNotSupported,
|
||||
NoAvailablePixelFormat,
|
||||
|
|
@ -121,6 +122,7 @@ impl CreationError {
|
|||
match *self {
|
||||
CreationError::OsError(ref text) => &text,
|
||||
CreationError::NotSupported => "Some of the requested attributes are not supported",
|
||||
CreationError::NoBackendAvailable(_) => "No backend is available",
|
||||
CreationError::RobustnessNotSupported => "You requested robustness, but it is \
|
||||
not supported.",
|
||||
CreationError::OpenGlVersionNotSupported => "The requested OpenGL version is not \
|
||||
|
|
@ -141,6 +143,13 @@ impl std::error::Error for CreationError {
|
|||
fn description(&self) -> &str {
|
||||
self.to_string()
|
||||
}
|
||||
|
||||
fn cause(&self) -> Option<&std::error::Error> {
|
||||
match *self {
|
||||
CreationError::NoBackendAvailable(ref err) => Some(&**err),
|
||||
_ => None
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Error that can happen when manipulating an OpenGL context.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue