Remove BuilderAttribs

This commit is contained in:
Pierre Krieger 2015-09-21 13:15:43 +02:00
parent a8d3342468
commit 62bafe2130
13 changed files with 138 additions and 134 deletions

View file

@ -6,14 +6,16 @@ pub use api::x11::{WaitEventsIterator, PollEventsIterator};*/
use std::collections::VecDeque;
use std::sync::Arc;
use BuilderAttribs;
use ContextError;
use CreationError;
use CursorState;
use Event;
use GlAttributes;
use GlContext;
use MouseCursor;
use PixelFormat;
use PixelFormatRequirements;
use WindowAttributes;
use libc;
use api::wayland;
@ -161,28 +163,26 @@ impl<'a> Iterator for WaitEventsIterator<'a> {
}
impl Window {
pub fn new(builder: BuilderAttribs) -> Result<Window, CreationError> {
let window = builder.window;
let pf_reqs = builder.pf_reqs;
let opengl = builder.opengl;
pub fn new(window: &WindowAttributes, pf_reqs: &PixelFormatRequirements,
opengl: &GlAttributes<&Window>) -> Result<Window, CreationError>
{
match *BACKEND {
Backend::Wayland => {
let opengl = opengl.map_sharing(|w| match w {
let opengl = opengl.clone().map_sharing(|w| match w {
&Window::Wayland(ref w) => w,
_ => panic!() // TODO: return an error
});
wayland::Window::new(&window, &pf_reqs, &opengl).map(Window::Wayland)
wayland::Window::new(window, pf_reqs, &opengl).map(Window::Wayland)
},
Backend::X(ref connec) => {
let opengl = opengl.map_sharing(|w| match w {
let opengl = opengl.clone().map_sharing(|w| match w {
&Window::X(ref w) => w,
_ => panic!() // TODO: return an error
});
x11::Window::new(connec, &window, &pf_reqs, &opengl).map(Window::X)
x11::Window::new(connec, window, pf_reqs, &opengl).map(Window::X)
},
Backend::Error(ref error) => Err(CreationError::NoBackendAvailable(Box::new(error.clone())))