diff options
Diffstat (limited to 'src/win32')
-rw-r--r-- | src/win32/ffi.rs | 3 | ||||
-rw-r--r-- | src/win32/init.rs | 15 |
2 files changed, 16 insertions, 2 deletions
diff --git a/src/win32/ffi.rs b/src/win32/ffi.rs index 40dec56..3afa18a 100644 --- a/src/win32/ffi.rs +++ b/src/win32/ffi.rs @@ -717,6 +717,9 @@ extern "system" { // http://msdn.microsoft.com/en-us/library/windows/desktop/ms633519(v=vs.85).aspx pub fn GetWindowRect(hWnd: HWND, lpRect: *mut RECT) -> BOOL; + // + pub fn glViewport(x: libc::c_int, y: libc::c_int, w: libc::c_int, h: libc::c_int); + // http://msdn.microsoft.com/en-us/library/windows/desktop/ms684175(v=vs.85).aspx pub fn LoadLibraryW(lpFileName: LPCWSTR) -> HMODULE; diff --git a/src/win32/init.rs b/src/win32/init.rs index d2aec5e..7e7f399 100644 --- a/src/win32/init.rs +++ b/src/win32/init.rs @@ -323,14 +323,25 @@ pub fn new_window(builder: WindowBuilder) -> Result<Window, String> { }; // building the struct - tx.send(Ok(Window{ + let window = Window{ window: real_window, hdc: hdc, context: context, gl_library: gl_library, events_receiver: events_receiver, is_closed: AtomicBool::new(false), - })); + }; + + // calling glViewport + unsafe { + use libc; + let dimensions = window.get_inner_size().unwrap(); + ffi::glViewport(0, 0, dimensions.val0() as libc::c_int, + dimensions.val1() as libc::c_int); + } + + // sending + tx.send(Ok(window)); // now that the `Window` struct is initialized, the main `Window::new()` function will // return and this events loop will run in parallel |