mirror of
https://github.com/rust-windowing/winit.git
synced 2026-09-02 06:40:06 -04:00
Rustup
This commit is contained in:
@@ -5,12 +5,6 @@ use libc;
|
||||
use std::{mem, ptr};
|
||||
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_ptr())
|
||||
}
|
||||
|
||||
pub struct HeadlessContext {
|
||||
context: ffi::OSMesaContext,
|
||||
buffer: Vec<u32>,
|
||||
@@ -53,9 +47,9 @@ impl HeadlessContext {
|
||||
|
||||
pub fn get_proc_address(&self, addr: &str) -> *const () {
|
||||
unsafe {
|
||||
with_c_str(addr, |s| {
|
||||
ffi::OSMesaGetProcAddress(mem::transmute(s)) as *const ()
|
||||
})
|
||||
use std::ffi::CString;
|
||||
let c_str = CString::new(addr.as_bytes().to_vec()).unwrap();
|
||||
ffi::OSMesaGetProcAddress(mem::transmute(c_str.as_ptr())) as *const ()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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());
|
||||
let c_str = CString::new(s.as_bytes().to_vec()).unwrap();
|
||||
f(c_str.as_ptr())
|
||||
}
|
||||
|
||||
@@ -778,7 +778,7 @@ impl Window {
|
||||
MouseCursor::AllScroll | MouseCursor::ZoomIn |
|
||||
MouseCursor::ZoomOut => "left_ptr",
|
||||
};
|
||||
let c_string = CString::from_slice(cursor_name.as_bytes());
|
||||
let c_string = CString::new(cursor_name.as_bytes().to_vec()).unwrap();
|
||||
let xcursor = ffi::XcursorLibraryLoadCursor(self.x.display, c_string.as_ptr());
|
||||
ffi::XDefineCursor (self.x.display, self.x.window, xcursor);
|
||||
ffi::XFlush(self.x.display);
|
||||
|
||||
Reference in New Issue
Block a user