diff options
author | Pierre Krieger <pierre.krieger1708@gmail.com> | 2015-09-21 13:15:43 +0200 |
---|---|---|
committer | Pierre Krieger <pierre.krieger1708@gmail.com> | 2015-09-21 14:03:05 +0200 |
commit | 62bafe2130db5aaf32bd46091581086ae435e4cf (patch) | |
tree | 03056bc49bd5ec0da9e155176a74c2d23a8fc603 /src/platform/windows | |
parent | a8d3342468cc1f490fddb361d54215d9e889271f (diff) | |
download | glutin-62bafe2130db5aaf32bd46091581086ae435e4cf.tar.gz glutin-62bafe2130db5aaf32bd46091581086ae435e4cf.zip |
Remove BuilderAttribs
Diffstat (limited to 'src/platform/windows')
-rw-r--r-- | src/platform/windows/mod.rs | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/src/platform/windows/mod.rs b/src/platform/windows/mod.rs index 51f7567..af9261f 100644 --- a/src/platform/windows/mod.rs +++ b/src/platform/windows/mod.rs @@ -7,11 +7,13 @@ pub use api::win32::{WindowProxy, PollEventsIterator, WaitEventsIterator}; use libc; use Api; -use BuilderAttribs; use ContextError; use CreationError; use PixelFormat; +use PixelFormatRequirements; +use GlAttributes; use GlContext; +use WindowAttributes; use api::egl::ffi::egl::Egl; use api::egl; @@ -57,8 +59,10 @@ 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.window, &builder.pf_reqs, &builder.opengl.clone().map_sharing(|w| &w.0), + pub fn new(window: &WindowAttributes, pf_reqs: &PixelFormatRequirements, + opengl: &GlAttributes<&Window>) -> Result<Window, CreationError> + { + win32::Window::new(window, pf_reqs, &opengl.clone().map_sharing(|w| &w.0), EGL.as_ref().map(|w| &w.0)).map(|w| Window(w)) } } @@ -86,15 +90,15 @@ pub enum HeadlessContext { } impl HeadlessContext { - pub fn new(mut builder: BuilderAttribs) -> Result<HeadlessContext, CreationError> { - builder.window.visible = false; - + pub fn new(dimensions: (u32, u32), pf_reqs: &PixelFormatRequirements, + opengl: &GlAttributes<&HeadlessContext>) -> Result<HeadlessContext, CreationError> + { // if EGL is available, we try using EGL first // if EGL returns an error, we try the hidden window method if let &Some(ref egl) = &*EGL { - let context = EglContext::new(egl.0.clone(), &builder.pf_reqs, &builder.opengl.clone().map_sharing(|_| unimplemented!()), // TODO: + let context = EglContext::new(egl.0.clone(), pf_reqs, &opengl.clone().map_sharing(|_| unimplemented!()), // TODO: egl::NativeDisplay::Other(None)) - .and_then(|prototype| prototype.finish_pbuffer(builder.window.dimensions.unwrap_or((800, 600)))) // TODO: + .and_then(|prototype| prototype.finish_pbuffer(dimensions)) .map(|ctxt| HeadlessContext::EglPbuffer(ctxt)); if let Ok(context) = context { @@ -102,7 +106,8 @@ impl HeadlessContext { } } - let window = try!(win32::Window::new(&builder.window, &builder.pf_reqs, &builder.opengl.clone().map_sharing(|w| &w.0), + let window = try!(win32::Window::new(&WindowAttributes { visible: false, .. Default::default() }, + pf_reqs, &opengl.clone().map_sharing(|_| unimplemented!()), //TODO: EGL.as_ref().map(|w| &w.0))); Ok(HeadlessContext::HiddenWindow(window)) } |