diff options
-rw-r--r-- | src/lib.rs | 20 |
1 files changed, 20 insertions, 0 deletions
@@ -70,12 +70,14 @@ pub struct MonitorID(winimpl::MonitorID); #[deriving(Clone, Show, PartialEq, Eq)] pub enum CreationError { OsError(String), + NotSupported, } impl std::error::Error for CreationError { fn description(&self) -> &str { match self { &CreationError::OsError(ref text) => text.as_slice(), + &CreationError::NotSupported => "Some of the requested attributes are not supported", } } } @@ -228,6 +230,15 @@ impl<'a> WindowBuilder<'a> { // building winimpl::Window::new(self.attribs).map(|w| Window { window: w }) } + + /// Builds the window. + /// + /// The context is build in a *strict* way. That means that if the backend couldn't give + /// you what you requested, an `Err` will be returned. + pub fn build_strict(mut self) -> Result<Window, CreationError> { + self.attribs.strict = true; + self.build() + } } /// Object that allows you to build headless contexts. @@ -274,6 +285,15 @@ impl HeadlessRendererBuilder { pub fn build(self) -> Result<HeadlessContext, CreationError> { winimpl::HeadlessContext::new(self.attribs).map(|w| HeadlessContext { context: w }) } + + /// Builds the headless context. + /// + /// The context is build in a *strict* way. That means that if the backend couldn't give + /// you what you requested, an `Err` will be returned. + pub fn build_strict(mut self) -> Result<HeadlessContext, CreationError> { + self.attribs.strict = true; + self.build() + } } /// Represents an OpenGL context and the Window or environment around it. |