From 91c50ed046ae226303caca7c64d96886411492b1 Mon Sep 17 00:00:00 2001 From: Pierre Krieger Date: Mon, 16 Feb 2015 10:01:47 +0100 Subject: [PATCH] Extract win32 HeadlessContext to a "headless" module --- src/win32/headless.rs | 35 +++++++++++++++++++++++++++++++++++ src/win32/mod.rs | 36 ++---------------------------------- 2 files changed, 37 insertions(+), 34 deletions(-) create mode 100644 src/win32/headless.rs diff --git a/src/win32/headless.rs b/src/win32/headless.rs new file mode 100644 index 00000000..1da8b025 --- /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 { + 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) { + } +} diff --git a/src/win32/mod.rs b/src/win32/mod.rs index c2fd1034..10e03a3b 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 { - 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) { - } -} - -#[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.