diff --git a/build.rs b/build.rs index 7137d3e3..2a421792 100644 --- a/build.rs +++ b/build.rs @@ -1,3 +1,5 @@ +#![feature(convert)] + extern crate gl_generator; extern crate khronos_api; @@ -7,7 +9,7 @@ use std::path::PathBuf; fn main() { let target = env::var("TARGET").unwrap(); - let dest = PathBuf::new(&env::var("OUT_DIR").unwrap()); + let dest = PathBuf::from(&env::var("OUT_DIR").unwrap()); if target.contains("windows") { let mut file = File::create(&dest.join("wgl_bindings.rs")).unwrap(); diff --git a/examples/fullscreen.rs b/examples-disabled/fullscreen.rs similarity index 98% rename from examples/fullscreen.rs rename to examples-disabled/fullscreen.rs index 3b9e2c1e..37ea3669 100644 --- a/examples/fullscreen.rs +++ b/examples-disabled/fullscreen.rs @@ -1,3 +1,5 @@ +#![feature(std_misc)] + #[cfg(target_os = "android")] #[macro_use] extern crate android_glue; diff --git a/examples/cursor.rs b/examples/cursor.rs index 0dced66d..c5bcbd6e 100644 --- a/examples/cursor.rs +++ b/examples/cursor.rs @@ -1,3 +1,5 @@ +#![feature(std_misc)] + #[cfg(target_os = "android")] #[macro_use] extern crate android_glue; diff --git a/examples/multiwindow.rs b/examples/multiwindow.rs index 115d5f2a..a7680b8f 100644 --- a/examples/multiwindow.rs +++ b/examples/multiwindow.rs @@ -1,3 +1,5 @@ +#![feature(std_misc)] + #[cfg(target_os = "android")] #[macro_use] extern crate android_glue; diff --git a/examples/vsync.rs b/examples/vsync.rs index ec9ea79f..768bfc08 100644 --- a/examples/vsync.rs +++ b/examples/vsync.rs @@ -1,3 +1,5 @@ +#![feature(std_misc)] + #[cfg(target_os = "android")] #[macro_use] extern crate android_glue; diff --git a/examples/window.rs b/examples/window.rs index 1d3b6158..0e2a3cf8 100644 --- a/examples/window.rs +++ b/examples/window.rs @@ -1,3 +1,5 @@ +#![feature(std_misc)] + #[cfg(target_os = "android")] #[macro_use] extern crate android_glue; diff --git a/src/lib.rs b/src/lib.rs index c0de089f..1fc19c3d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,4 +1,4 @@ -#![feature(unsafe_destructor,core,std_misc)] +#![feature(collections, unsafe_destructor, os, core, std_misc, alloc)] #![unstable] //! The purpose of this library is to provide an OpenGL context on as many @@ -32,17 +32,17 @@ extern crate libc; #[cfg(target_os = "windows")] extern crate winapi; #[cfg(target_os = "windows")] -extern crate "kernel32-sys" as kernel32; +extern crate kernel32_sys as kernel32; #[cfg(target_os = "windows")] -extern crate "gdi32-sys" as gdi32; +extern crate gdi32_sys as gdi32; #[cfg(target_os = "windows")] -extern crate "user32-sys" as user32; +extern crate user32_sys as user32; #[cfg(target_os = "macos")] extern crate cocoa; #[cfg(target_os = "macos")] extern crate core_foundation; #[cfg(target_os = "macos")] -extern crate "glutin_core_graphics" as core_graphics; +extern crate glutin_core_graphics as core_graphics; pub use events::*; #[cfg(feature = "headless")] @@ -86,7 +86,7 @@ pub enum CreationError { impl CreationError { fn to_string(&self) -> &str { match *self { - CreationError::OsError(ref text) => text.as_slice(), + CreationError::OsError(ref text) => &text, CreationError::NotSupported => "Some of the requested attributes are not supported", } } diff --git a/src/win32/callback.rs b/src/win32/callback.rs index f9ec6537..bbf5b553 100644 --- a/src/win32/callback.rs +++ b/src/win32/callback.rs @@ -1,6 +1,6 @@ use std::rc::Rc; use std::cell::RefCell; -use std::sync::mpsc::{Sender, Receiver, channel}; +use std::sync::mpsc::Sender; use Event; use super::event; @@ -52,7 +52,7 @@ pub unsafe extern "system" fn callback(window: winapi::HWND, msg: winapi::UINT, }; if win == &window { - unsafe { user32::PostQuitMessage(0); } + user32::PostQuitMessage(0); } }); @@ -83,7 +83,7 @@ pub unsafe extern "system" fn callback(window: winapi::HWND, msg: winapi::UINT, winapi::WM_CHAR => { use std::mem; use events::Event::ReceivedCharacter; - let chr: char = unsafe { mem::transmute(wparam as u32) }; + let chr: char = mem::transmute(wparam as u32); send_event(window, ReceivedCharacter(chr)); 0 }, @@ -188,7 +188,7 @@ pub unsafe extern "system" fn callback(window: winapi::HWND, msg: winapi::UINT, 0 }, - _ => unsafe { + _ => { user32::DefWindowProcW(window, msg, wparam, lparam) } } diff --git a/src/win32/init.rs b/src/win32/init.rs index 8d2eb1ee..5266ae4a 100644 --- a/src/win32/init.rs +++ b/src/win32/init.rs @@ -235,7 +235,7 @@ unsafe fn init(title: Vec, builder: BuilderAttribs<'static>, // handling vsync if builder.vsync { if extra_functions.SwapIntervalEXT.is_loaded() { - let guard = try!(CurrentContextGuard::make_current(&real_window, &context)); + let _guard = try!(CurrentContextGuard::make_current(&real_window, &context)); if extra_functions.SwapIntervalEXT(1) == 0 { return Err(OsError(format!("wglSwapIntervalEXT failed"))); diff --git a/src/win32/mod.rs b/src/win32/mod.rs index 07f76e88..380342ed 100644 --- a/src/win32/mod.rs +++ b/src/win32/mod.rs @@ -1,7 +1,6 @@ use std::sync::atomic::AtomicBool; use std::ptr; use std::ffi::CString; -use std::collections::VecDeque; use std::sync::mpsc::Receiver; use libc; use {CreationError, Event, MouseCursor}; diff --git a/src/win32/monitor.rs b/src/win32/monitor.rs index b5ffe2d9..886d0bf0 100644 --- a/src/win32/monitor.rs +++ b/src/win32/monitor.rs @@ -2,6 +2,7 @@ use winapi; use user32; use std::collections::VecDeque; +use std::mem; use native_monitor::NativeMonitorId; @@ -83,15 +84,12 @@ impl Iterator for DeviceEnumerator { fn wchar_as_string(wchar: &[winapi::WCHAR]) -> String { String::from_utf16_lossy(wchar) - .as_slice() .trim_right_matches(0 as char) .to_string() } /// Win32 implementation of the main `get_available_monitors` function. pub fn get_available_monitors() -> VecDeque { - use std::{iter, mem, ptr}; - // return value let mut result = VecDeque::new(); @@ -120,8 +118,8 @@ pub fn get_available_monitors() -> VecDeque { // adding to the resulting list result.push_back(MonitorID { adapter_name: adapter.DeviceName, - monitor_name: wchar_as_string(monitor.DeviceName.as_slice()), - readable_name: wchar_as_string(monitor.DeviceString.as_slice()), + monitor_name: wchar_as_string(&monitor.DeviceName), + readable_name: wchar_as_string(&monitor.DeviceString), flags: monitor.StateFlags, position: position, dimensions: dimensions, @@ -165,7 +163,7 @@ impl MonitorID { /// This is a Win32-only function for `MonitorID` that returns the system name of the adapter /// device. pub fn get_adapter_name(&self) -> &[winapi::WCHAR] { - self.adapter_name.as_slice() + &self.adapter_name } /// This is a Win32-only function for `MonitorID` that returns the position of the