diff --git a/Cargo.toml b/Cargo.toml index d81b58195..6102a4c8d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,4 +1,5 @@ [package] +edition = "2015" name = "scrap" description = "Screen capture made easy." version = "0.5.0" diff --git a/build.rs b/build.rs index 24160e201..ef6cf4397 100644 --- a/build.rs +++ b/build.rs @@ -1,4 +1,5 @@ fn main() { + println!("cargo::rustc-check-cfg=cfg(dxgi,quartz,x11)"); if cfg!(windows) { // The first choice is Windows because DXGI is amazing. println!("cargo:rustc-cfg=dxgi"); diff --git a/src/dxgi/mod.rs b/src/dxgi/mod.rs index b2ad8a116..7e9b0d8e9 100644 --- a/src/dxgi/mod.rs +++ b/src/dxgi/mod.rs @@ -50,9 +50,11 @@ impl Capturer { let mut device = ptr::null_mut(); let mut context = ptr::null_mut(); let mut duplication = ptr::null_mut(); - let mut desc = unsafe { mem::uninitialized() }; + let mut desc = unsafe { mem::zeroed() }; if unsafe { + let mut feature_level = D3D_FEATURE_LEVEL_9_1; + D3D11CreateDevice( &mut **display.adapter, D3D_DRIVER_TYPE_UNKNOWN, @@ -62,7 +64,7 @@ impl Capturer { 0, // Feature levels' length. D3D11_SDK_VERSION, &mut device, - &mut D3D_FEATURE_LEVEL_9_1, + &mut feature_level, &mut context ) } != S_OK { @@ -105,7 +107,7 @@ impl Capturer { unsafe fn load_frame(&mut self, timeout: UINT) -> io::Result<()> { let mut frame = ptr::null_mut(); - let mut info = mem::uninitialized(); + let mut info = mem::zeroed(); self.data = ptr::null_mut(); wrap_hresult((*self.duplication).AcquireNextFrame( @@ -115,7 +117,7 @@ impl Capturer { ))?; if self.fastlane { - let mut rect = mem::uninitialized(); + let mut rect = mem::zeroed(); let res = wrap_hresult( (*self.duplication).MapDesktopSurface(&mut rect) ); @@ -133,7 +135,7 @@ impl Capturer { self.surface = ptr::null_mut(); self.surface = self.ohgodwhat(frame)?; - let mut rect = mem::uninitialized(); + let mut rect = mem::zeroed(); wrap_hresult((*self.surface).Map( &mut rect, DXGI_MAP_READ @@ -155,7 +157,7 @@ impl Capturer { &mut texture as *mut *mut _ as *mut *mut _ ); - let mut texture_desc = mem::uninitialized(); + let mut texture_desc = mem::zeroed(); (*texture).GetDesc(&mut texture_desc); texture_desc.Usage = D3D11_USAGE_STAGING; @@ -302,14 +304,14 @@ impl Displays { // We get the display's details. let desc = unsafe { - let mut desc = mem::uninitialized(); + let mut desc = mem::zeroed(); (*output).GetDesc(&mut desc); desc }; // We cast it up to the version needed for desktop duplication. - let mut inner = ptr::null_mut(); + let mut inner = ptr::null_mut() as *mut IDXGIOutput1; unsafe { (*output).QueryInterface( &IID_IDXGIOUTPUT1, diff --git a/src/quartz/display.rs b/src/quartz/display.rs index 5944f5a94..529351115 100644 --- a/src/quartz/display.rs +++ b/src/quartz/display.rs @@ -12,7 +12,7 @@ impl Display { pub fn online() -> Result, CGError> { unsafe { - let mut arr: [u32; 16] = mem::uninitialized(); + let mut arr: [u32; 16] = mem::zeroed(); let mut len: u32 = 0; match CGGetOnlineDisplayList(16, arr.as_mut_ptr(), &mut len) {