aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/api/win32/mod.rs12
-rw-r--r--src/platform/windows/mod.rs6
2 files changed, 13 insertions, 5 deletions
diff --git a/src/api/win32/mod.rs b/src/api/win32/mod.rs
index 7d7de05..eb31873 100644
--- a/src/api/win32/mod.rs
+++ b/src/api/win32/mod.rs
@@ -13,11 +13,14 @@ use libc;
use ContextError;
use {CreationError, Event, MouseCursor};
use CursorState;
+use GlAttributes;
use GlContext;
use Api;
use PixelFormat;
+use PixelFormatRequirements;
use BuilderAttribs;
+use WindowAttributes;
pub use self::monitor::{MonitorID, get_available_monitors, get_primary_monitor};
@@ -83,15 +86,18 @@ impl WindowProxy {
impl Window {
/// See the docs in the crate root file.
- pub fn new(builder: BuilderAttribs, egl: Option<&Egl>) -> Result<Window, CreationError> {
- let opengl = builder.opengl.clone().map_sharing(|sharing| {
+ pub fn new(window: &WindowAttributes, pf_reqs: &PixelFormatRequirements,
+ opengl: &GlAttributes<&Window>, egl: Option<&Egl>)
+ -> Result<Window, CreationError>
+ {
+ let opengl = opengl.clone().map_sharing(|sharing| {
match sharing.context {
Context::Wgl(ref c) => RawContext::Wgl(c.get_hglrc()),
Context::Egl(_) => unimplemented!(), // FIXME:
}
});
- init::new_window(&builder.window, &builder.pf_reqs, &opengl, egl)
+ init::new_window(window, pf_reqs, &opengl, egl)
}
/// See the docs in the crate root file.
diff --git a/src/platform/windows/mod.rs b/src/platform/windows/mod.rs
index 918b779..51f7567 100644
--- a/src/platform/windows/mod.rs
+++ b/src/platform/windows/mod.rs
@@ -58,7 +58,8 @@ pub struct Window(win32::Window);
impl Window {
/// See the docs in the crate root file.
pub fn new(builder: BuilderAttribs) -> Result<Window, CreationError> {
- win32::Window::new(builder, EGL.as_ref().map(|w| &w.0)).map(|w| Window(w))
+ win32::Window::new(&builder.window, &builder.pf_reqs, &builder.opengl.clone().map_sharing(|w| &w.0),
+ EGL.as_ref().map(|w| &w.0)).map(|w| Window(w))
}
}
@@ -101,7 +102,8 @@ impl HeadlessContext {
}
}
- let window = try!(win32::Window::new(builder, EGL.as_ref().map(|w| &w.0)));
+ let window = try!(win32::Window::new(&builder.window, &builder.pf_reqs, &builder.opengl.clone().map_sharing(|w| &w.0),
+ EGL.as_ref().map(|w| &w.0)));
Ok(HeadlessContext::HiddenWindow(window))
}
}