diff options
author | Tomaka17 <pierre.krieger1708@gmail.com> | 2014-07-31 10:52:05 +0200 |
---|---|---|
committer | Tomaka17 <pierre.krieger1708@gmail.com> | 2014-07-31 11:13:40 +0200 |
commit | d9d293667a7b5934ba923f578ffbfd2c12d121be (patch) | |
tree | 6ac0c7ed6bb98b8eeda249141afac0928fdd0cec /src/win32/ffi.rs | |
parent | db8955a9d85d7e44e63dd3fd7634230bc1aed635 (diff) | |
download | glutin-d9d293667a7b5934ba923f578ffbfd2c12d121be.tar.gz glutin-d9d293667a7b5934ba923f578ffbfd2c12d121be.zip |
Add monitor support for win32
Diffstat (limited to 'src/win32/ffi.rs')
-rw-r--r-- | src/win32/ffi.rs | 47 |
1 files changed, 46 insertions, 1 deletions
diff --git a/src/win32/ffi.rs b/src/win32/ffi.rs index 268edbc..a217e20 100644 --- a/src/win32/ffi.rs +++ b/src/win32/ffi.rs @@ -1,6 +1,7 @@ #![allow(dead_code)] #![allow(non_snake_case_functions)] #![allow(non_camel_case_types)] +#![allow(uppercase_variables)] use libc; @@ -136,6 +137,13 @@ pub static DISP_CHANGE_BADPARAM: LONG = -5; pub static DISP_CHANGE_BADDUALVIEW: LONG = -6; // ? +pub static DISPLAY_DEVICE_ACTIVE: DWORD = 0x00000001; +pub static DISPLAY_DEVICE_MULTI_DRIVER: DWORD = 0x00000002; +pub static DISPLAY_DEVICE_PRIMARY_DEVICE: DWORD = 0x00000004; +pub static DISPLAY_DEVICE_MIRRORING_DRIVER: DWORD = 0x00000008; +pub static DISPLAY_DEVICE_VGA_COMPATIBLE: DWORD = 0x00000010; + +// ? pub static DM_ORIENTATION: DWORD = 0x00000001; pub static DM_PAPERSIZE: DWORD = 0x00000002; pub static DM_PAPERLENGTH: DWORD = 0x00000004; @@ -167,6 +175,13 @@ pub static DM_PANNINGWIDTH: DWORD = 0x08000000; pub static DM_PANNINGHEIGHT: DWORD = 0x10000000; pub static DM_DISPLAYFIXEDOUTPUT: DWORD = 0x20000000; +// http://msdn.microsoft.com/en-us/library/windows/desktop/dd162609(v=vs.85).aspx +pub static EDD_GET_DEVICE_INTERFACE_NAME: DWORD = 0x00000001; + +// ? +pub static ENUM_CURRENT_SETTINGS: DWORD = -1; +pub static ENUM_REGISTRY_SETTINGS: DWORD = -2; + // http://msdn.microsoft.com/en-us/library/windows/desktop/ms679351(v=vs.85).aspx pub static FORMAT_MESSAGE_ALLOCATE_BUFFER: DWORD = 0x00000100; pub static FORMAT_MESSAGE_ARGUMENT_ARRAY: DWORD = 0x00002000; @@ -520,6 +535,13 @@ pub struct PIXELFORMATDESCRIPTOR { pub dwDamageMask: DWORD, } +// http://msdn.microsoft.com/en-us/library/dd162807(v=vs.85).aspx +#[repr(C)] +pub struct POINTL { + pub x: LONG, + pub y: LONG, +} + // http://msdn.microsoft.com/en-us/library/windows/desktop/dd183565(v=vs.85).aspx #[repr(C)] pub struct DEVMODE { @@ -529,7 +551,7 @@ pub struct DEVMODE { pub dmSize: WORD, pub dmDriverExtra: WORD, pub dmFields: DWORD, - union1: [u8, ..16], + pub union1: [u8, ..16], pub dmColor: libc::c_short, pub dmDuplex: libc::c_short, pub dmYResolution: libc::c_short, @@ -563,6 +585,17 @@ pub struct WINDOWPLACEMENT { pub rcNormalPosition: RECT, } +// http://msdn.microsoft.com/en-us/library/windows/desktop/dd183569(v=vs.85).aspx +#[repr(C)] +pub struct DISPLAY_DEVICEW { + pub cb: DWORD, + pub DeviceName: [WCHAR, ..32], + pub DeviceString: [WCHAR, ..128], + pub StateFlags: DWORD, + pub DeviceID: [WCHAR, ..128], + pub DeviceKey: [WCHAR, ..128], +} + pub type LPMSG = *mut MSG; #[link(name = "advapi32")] @@ -590,6 +623,10 @@ extern "system" { // http://msdn.microsoft.com/en-us/library/windows/desktop/dd183411(v=vs.85).aspx pub fn ChangeDisplaySettingsW(lpDevMode: *mut DEVMODE, dwFlags: DWORD) -> LONG; + // http://msdn.microsoft.com/en-us/library/windows/desktop/dd183413(v=vs.85).aspx + pub fn ChangeDisplaySettingsExW(lpszDeviceName: LPCWSTR, lpDevMode: *mut DEVMODE, hwnd: HWND, + dwFlags: DWORD, lParam: LPVOID) -> LONG; + // http://msdn.microsoft.com/en-us/library/windows/desktop/ms632680(v=vs.85).aspx pub fn CreateWindowExW(dwExStyle: DWORD, lpClassName: LPCWSTR, lpWindowName: LPCWSTR, dwStyle: DWORD, x: libc::c_int, y: libc::c_int, nWidth: libc::c_int, nHeight: libc::c_int, @@ -611,6 +648,14 @@ extern "system" { // http://msdn.microsoft.com/en-us/library/windows/desktop/dd162598(v=vs.85).aspx pub fn EndPaint(hWnd: HWND, lpPaint: *const PAINTSTRUCT) -> BOOL; + // http://msdn.microsoft.com/en-us/library/windows/desktop/dd162609(v=vs.85).aspx + pub fn EnumDisplayDevicesW(lpDevice: LPCWSTR, iDevNum: DWORD, + lpDisplayDevice: *mut DISPLAY_DEVICEW, dwFlags: DWORD) -> BOOL; + + // http://msdn.microsoft.com/en-us/library/dd162612(v=vs.85).aspx + pub fn EnumDisplaySettingsExW(lpszDeviceName: LPCWSTR, iModeNum: DWORD, + lpDevMode: *mut DEVMODE, dwFlags: DWORD) -> BOOL; + // http://msdn.microsoft.com/en-us/library/windows/desktop/dd162719(v=vs.85).aspx pub fn FillRect(hDC: HDC, lprc: *const RECT, hbr: HBRUSH) -> libc::c_int; |