diff options
author | tomaka <pierre.krieger1708@gmail.com> | 2015-02-16 10:51:02 +0100 |
---|---|---|
committer | tomaka <pierre.krieger1708@gmail.com> | 2015-02-16 10:51:02 +0100 |
commit | cba56a208dd3c726c2cddaea7311ee91b5c75911 (patch) | |
tree | 981d7c76a1b4a0b3e887f18f81812cdc38f3873e /src | |
parent | 1fde6f40b5d9d9e37bd86b97e16407ff0c3af1af (diff) | |
parent | 91c50ed046ae226303caca7c64d96886411492b1 (diff) | |
download | glutin-cba56a208dd3c726c2cddaea7311ee91b5c75911.tar.gz glutin-cba56a208dd3c726c2cddaea7311ee91b5c75911.zip |
Merge pull request #276 from tomaka/win32-headless
Extract win32 HeadlessContext to a "headless" module
Diffstat (limited to 'src')
-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. |