Switch to dwmapi

This commit is contained in:
Pierre Krieger 2015-05-20 18:46:10 +02:00
parent 81314f91d8
commit 9117bcf3d3
3 changed files with 9 additions and 11 deletions

View file

@ -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"

View file

@ -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);
}
}

View file

@ -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;