diff options
-rw-r--r-- | Cargo.toml | 6 | ||||
-rw-r--r-- | src/api/win32/init.rs | 12 | ||||
-rw-r--r-- | src/lib.rs | 2 |
3 files changed, 9 insertions, 11 deletions
@@ -37,16 +37,18 @@ glutin_core_graphics = "0" glutin_core_foundation = "0" [target.i686-pc-windows-gnu.dependencies] -winapi = "0.1" +winapi = "~0.1.18" gdi32-sys = "0.1" user32-sys = "~0.1.1" kernel32-sys = "0.1" +dwmapi-sys = "0.1" [target.x86_64-pc-windows-gnu.dependencies] -winapi = "0.1" +winapi = "~0.1.18" gdi32-sys = "0.1" user32-sys = "~0.1.1" kernel32-sys = "0.1" +dwmapi-sys = "0.1" [target.i686-unknown-linux-gnu.dependencies] osmesa-sys = "0.0.5" diff --git a/src/api/win32/init.rs b/src/api/win32/init.rs index 1252354..f46c395 100644 --- a/src/api/win32/init.rs +++ b/src/api/win32/init.rs @@ -25,6 +25,7 @@ use std::sync::mpsc::channel; use winapi; use kernel32; +use dwmapi; use user32; use api::wgl; @@ -223,15 +224,8 @@ unsafe fn init(title: Vec<u16>, builder: BuilderAttribs<'static>, fTransitionOnMaximized: 0, }; - let dll = kernel32::LoadLibraryA(b"dwmapi.dll\0".as_ptr() as *const _); - if !dll.is_null() { - let pr = kernel32::GetProcAddress(dll, b"DwmEnableBlurBehindWindow\0".as_ptr() as *const _); - if !pr.is_null() { - let pr: unsafe extern "system" fn(winapi::HWND, *const winapi::DWM_BLURBEHIND) - -> winapi::HRESULT = mem::transmute(pr); - pr(real_window.0, &bb); - } - kernel32::FreeLibrary(dll); + unsafe { + dwmapi::DwmEnableBlurBehindWindow(real_window.0, &bb); } } @@ -40,6 +40,8 @@ extern crate kernel32; extern crate gdi32; #[cfg(target_os = "windows")] extern crate user32; +#[cfg(target_os = "windows")] +extern crate dwmapi; #[cfg(target_os = "macos")] #[macro_use] extern crate objc; |