mirror of
https://github.com/italicsjenga/winit-sonoma-fix.git
synced 2024-12-24 06:11:30 +11:00
Finish converting windows to the new design
This commit is contained in:
parent
932e565391
commit
8f3ec7998d
|
@ -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.
|
||||
|
|
|
@ -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))
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue