mirror of
https://github.com/italicsjenga/winit-sonoma-fix.git
synced 2025-01-12 05:31:31 +11:00
RingBuf -> VecDeque for other platforms, as_slice_with_nul -> as_bytes_with_nul
This commit is contained in:
parent
9bb41bf277
commit
0389c834e4
|
@ -9,7 +9,7 @@ use events::ElementState::{Pressed, Released};
|
|||
use events::Event::{MouseInput, MouseMoved};
|
||||
use events::MouseButton;
|
||||
|
||||
use std::collections::RingBuf;
|
||||
use std::collections::VecDeque;
|
||||
|
||||
use Api;
|
||||
use BuilderAttribs;
|
||||
|
@ -26,8 +26,8 @@ pub struct MonitorID;
|
|||
|
||||
mod ffi;
|
||||
|
||||
pub fn get_available_monitors() -> RingBuf <MonitorID> {
|
||||
let mut rb = RingBuf::new();
|
||||
pub fn get_available_monitors() -> VecDeque <MonitorID> {
|
||||
let mut rb = VecDeque::new();
|
||||
rb.push_back(MonitorID);
|
||||
rb
|
||||
}
|
||||
|
@ -313,7 +313,7 @@ impl Window {
|
|||
|
||||
pub fn get_proc_address(&self, addr: &str) -> *const () {
|
||||
let addr = CString::from_slice(addr.as_bytes());
|
||||
let addr = addr.as_slice_with_nul().as_ptr();
|
||||
let addr = addr.as_bytes_with_nul().as_ptr();
|
||||
unsafe {
|
||||
ffi::egl::GetProcAddress(addr) as *const ()
|
||||
}
|
||||
|
|
|
@ -171,7 +171,7 @@ fn init(title: Vec<u16>, builder: BuilderAttribs<'static>, builder_sharelists: O
|
|||
use libc;
|
||||
|
||||
let addr = CString::from_slice(addr.as_bytes());
|
||||
let addr = addr.as_slice_with_nul().as_ptr();
|
||||
let addr = addr.as_bytes_with_nul().as_ptr();
|
||||
|
||||
unsafe {
|
||||
gl::wgl::GetProcAddress(addr) as *const libc::c_void
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
use std::sync::atomic::AtomicBool;
|
||||
use std::ptr;
|
||||
use std::ffi::CString;
|
||||
use std::collections::RingBuf;
|
||||
use std::collections::VecDeque;
|
||||
use std::sync::mpsc::Receiver;
|
||||
use libc;
|
||||
use {CreationError, Event, MouseCursor};
|
||||
|
@ -192,7 +192,7 @@ impl Window {
|
|||
/// See the docs in the crate root file.
|
||||
pub fn get_proc_address(&self, addr: &str) -> *const () {
|
||||
let addr = CString::from_slice(addr.as_bytes());
|
||||
let addr = addr.as_slice_with_nul().as_ptr();
|
||||
let addr = addr.as_bytes_with_nul().as_ptr();
|
||||
|
||||
unsafe {
|
||||
let p = gl::wgl::GetProcAddress(addr) as *const ();
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
use winapi;
|
||||
use user32;
|
||||
|
||||
use std::collections::RingBuf;
|
||||
use std::collections::VecDeque;
|
||||
|
||||
/// Win32 implementation of the main `MonitorID` object.
|
||||
pub struct MonitorID {
|
||||
|
@ -25,11 +25,11 @@ pub struct MonitorID {
|
|||
}
|
||||
|
||||
/// Win32 implementation of the main `get_available_monitors` function.
|
||||
pub fn get_available_monitors() -> RingBuf<MonitorID> {
|
||||
pub fn get_available_monitors() -> VecDeque<MonitorID> {
|
||||
use std::{iter, mem, ptr};
|
||||
|
||||
// return value
|
||||
let mut result = RingBuf::new();
|
||||
let mut result = VecDeque::new();
|
||||
|
||||
// enumerating the devices is done by querying device 0, then device 1, then device 2, etc.
|
||||
// until the query function returns null
|
||||
|
|
|
@ -8,7 +8,7 @@ use super::ffi;
|
|||
fn with_c_str<F, T>(s: &str, f: F) -> T where F: FnOnce(*const libc::c_char) -> T {
|
||||
use std::ffi::CString;
|
||||
let c_str = CString::from_slice(s.as_bytes());
|
||||
f(c_str.as_slice_with_nul().as_ptr())
|
||||
f(c_str.as_bytes_with_nul().as_ptr())
|
||||
}
|
||||
|
||||
pub struct HeadlessContext {
|
||||
|
|
|
@ -5,7 +5,7 @@ use libc;
|
|||
use std::{mem, ptr};
|
||||
use std::cell::Cell;
|
||||
use std::sync::atomic::AtomicBool;
|
||||
use std::collections::RingBuf;
|
||||
use std::collections::VecDeque;
|
||||
use super::ffi;
|
||||
use std::sync::{Arc, Mutex, Once, ONCE_INIT, Weak};
|
||||
use std::sync::{StaticMutex, MUTEX_INIT};
|
||||
|
@ -39,7 +39,7 @@ fn ensure_thread_init() {
|
|||
fn with_c_str<F, T>(s: &str, f: F) -> T where F: FnOnce(*const libc::c_char) -> T {
|
||||
use std::ffi::CString;
|
||||
let c_str = CString::from_slice(s.as_bytes());
|
||||
f(c_str.as_slice_with_nul().as_ptr())
|
||||
f(c_str.as_bytes_with_nul().as_ptr())
|
||||
}
|
||||
|
||||
struct XWindow {
|
||||
|
@ -281,7 +281,7 @@ pub struct Window {
|
|||
wm_delete_window: ffi::Atom,
|
||||
current_size: Cell<(libc::c_int, libc::c_int)>,
|
||||
/// Events that have been retreived with XLib but not dispatched with iterators yet
|
||||
pending_events: Mutex<RingBuf<Event>>,
|
||||
pending_events: Mutex<VecDeque<Event>>,
|
||||
}
|
||||
|
||||
impl Window {
|
||||
|
@ -600,7 +600,7 @@ impl Window {
|
|||
is_closed: AtomicBool::new(false),
|
||||
wm_delete_window: wm_delete_window,
|
||||
current_size: Cell::new((0, 0)),
|
||||
pending_events: Mutex::new(RingBuf::new()),
|
||||
pending_events: Mutex::new(VecDeque::new()),
|
||||
};
|
||||
|
||||
// returning
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
use std::ptr;
|
||||
use std::collections::RingBuf;
|
||||
use std::collections::VecDeque;
|
||||
use super::super::ffi;
|
||||
use super::ensure_thread_init;
|
||||
|
||||
pub struct MonitorID(pub u32);
|
||||
|
||||
pub fn get_available_monitors() -> RingBuf<MonitorID> {
|
||||
pub fn get_available_monitors() -> VecDeque<MonitorID> {
|
||||
ensure_thread_init();
|
||||
let nb_monitors = unsafe {
|
||||
let display = ffi::XOpenDisplay(ptr::null());
|
||||
|
@ -17,7 +17,7 @@ pub fn get_available_monitors() -> RingBuf<MonitorID> {
|
|||
nb_monitors
|
||||
};
|
||||
|
||||
let mut monitors = RingBuf::new();
|
||||
let mut monitors = VecDeque::new();
|
||||
monitors.extend(range(0, nb_monitors).map(|i| MonitorID(i as u32)));
|
||||
monitors
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue