diff options
| -rw-r--r-- | src/win32/headless.rs | 35 | ||||
| -rw-r--r-- | src/win32/mod.rs | 36 | 
2 files changed, 37 insertions, 34 deletions
diff --git a/src/win32/headless.rs b/src/win32/headless.rs new file mode 100644 index 0000000..1da8b02 --- /dev/null +++ b/src/win32/headless.rs @@ -0,0 +1,35 @@ +use super::Window; +use super::init; + +use Api; +use BuilderAttribs; +use CreationError; + +/// +pub struct HeadlessContext(Window); + +impl HeadlessContext { +    /// See the docs in the crate root file. +    pub fn new(builder: BuilderAttribs) -> Result<HeadlessContext, CreationError> { +        let (builder, _) = builder.extract_non_static(); +        init::new_window(builder, None).map(|w| HeadlessContext(w)) +    } + +    /// See the docs in the crate root file. +    pub unsafe fn make_current(&self) { +        self.0.make_current() +    } + +    /// See the docs in the crate root file. +    pub fn get_proc_address(&self, addr: &str) -> *const () { +        self.0.get_proc_address(addr) +    } + +    /// See the docs in the crate root file. +    pub fn get_api(&self) -> Api { +        Api::OpenGl +    } + +    pub fn set_window_resize_callback(&mut self, _: Option<fn(u32, u32)>) { +    } +} diff --git a/src/win32/mod.rs b/src/win32/mod.rs index c2fd103..10e03a3 100644 --- a/src/win32/mod.rs +++ b/src/win32/mod.rs @@ -8,6 +8,7 @@ use {CreationError, Event, MouseCursor};  use BuilderAttribs; +pub use self::headless::HeadlessContext;  pub use self::monitor::{MonitorID, get_available_monitors, get_primary_monitor};  use winapi; @@ -17,43 +18,10 @@ use gdi32;  mod event;  mod gl; +mod headless;  mod init;  mod monitor; -/// -pub struct HeadlessContext(Window); - -impl HeadlessContext { -    /// See the docs in the crate root file. -    pub fn new(builder: BuilderAttribs) -> Result<HeadlessContext, CreationError> { -        let (builder, _) = builder.extract_non_static(); -        init::new_window(builder, None).map(|w| HeadlessContext(w)) -    } - -    /// See the docs in the crate root file. -    pub unsafe fn make_current(&self) { -        self.0.make_current() -    } - -    /// See the docs in the crate root file. -    pub fn get_proc_address(&self, addr: &str) -> *const () { -        self.0.get_proc_address(addr) -    } - -    /// See the docs in the crate root file. -    pub fn get_api(&self) -> ::Api { -        ::Api::OpenGl -    } - -    pub fn set_window_resize_callback(&mut self, _: Option<fn(u32, u32)>) { -    } -} - -#[cfg(feature = "headless")] -unsafe impl Send for HeadlessContext {} -#[cfg(feature = "headless")] -unsafe impl Sync for HeadlessContext {} -  /// The Win32 implementation of the main `Window` object.  pub struct Window {      /// Main handle for the window.  | 
