diff options
author | José Fonseca <[email protected]> | 2009-05-06 19:58:08 +0100 |
---|---|---|
committer | Keith Whitwell <[email protected]> | 2009-05-08 14:57:29 +0100 |
commit | d5eac43a2e06ff30f9e6f74e49493ef5d64cd309 (patch) | |
tree | 1441b26ec4bee76ea629c5ed53685446d98cbb28 /src/gallium/state_trackers | |
parent | d78b5952c10d5c65cd7d679b291c217ebd30cc4a (diff) |
wgl: Enforce a minimum 1x1 framebuffer size.
Diffstat (limited to 'src/gallium/state_trackers')
-rw-r--r-- | src/gallium/state_trackers/wgl/shared/stw_context.c | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/src/gallium/state_trackers/wgl/shared/stw_context.c b/src/gallium/state_trackers/wgl/shared/stw_context.c index d532b1563b8..b61f74f69b6 100644 --- a/src/gallium/state_trackers/wgl/shared/stw_context.c +++ b/src/gallium/state_trackers/wgl/shared/stw_context.c @@ -278,19 +278,30 @@ stw_release_context( /* Find the width and height of the window named by hdc. */ static void -stw_get_window_size( HDC hdc, GLuint *width, GLuint *height ) +stw_get_window_size( HDC hdc, GLuint *pwidth, GLuint *pheight ) { - if (WindowFromDC( hdc )) { - RECT rect; + GLuint width, height; + HWND hwnd; - GetClientRect( WindowFromDC( hdc ), &rect ); - *width = rect.right - rect.left; - *height = rect.bottom - rect.top; + hwnd = WindowFromDC( hdc ); + if (hwnd) { + RECT rect; + GetClientRect( hwnd, &rect ); + width = rect.right - rect.left; + height = rect.bottom - rect.top; } else { - *width = GetDeviceCaps( hdc, HORZRES ); - *height = GetDeviceCaps( hdc, VERTRES ); + width = GetDeviceCaps( hdc, HORZRES ); + height = GetDeviceCaps( hdc, VERTRES ); } + + if(width < 1) + width = 1; + if(height < 1) + height = 1; + + *pwidth = width; + *pheight = height; } UINT_PTR |