st/wgl: fix issue with SwapBuffers of minimized windows

If a window's minimized we get a zero-size window.  Skip the SwapBuffers
in that case to avoid some warning messages with the VMware svga driver.
Internal bug #996695

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
This commit is contained in:
Brian Paul 2013-04-17 16:16:24 -06:00
parent 505ac6ddc6
commit 02039066a8
2 changed files with 15 additions and 9 deletions

View file

@ -140,6 +140,8 @@ stw_framebuffer_get_size( struct stw_framebuffer *fb )
width = client_rect.right - client_rect.left;
height = client_rect.bottom - client_rect.top;
fb->minimized = width == 0 || height == 0;
if (width <= 0 || height <= 0) {
/*
* When the window is minimized GetClientRect will return zeros. Simply
@ -530,15 +532,17 @@ DrvPresentBuffers(HDC hdc, PGLPRESENTBUFFERSDATA data)
}
}
if(fb->shared_surface) {
stw_dev->stw_winsys->compose(screen,
res,
fb->shared_surface,
&fb->client_rect,
data->PresentHistoryToken);
}
else {
stw_dev->stw_winsys->present( screen, res, hdc );
if (!fb->minimized) {
if (fb->shared_surface) {
stw_dev->stw_winsys->compose(screen,
res,
fb->shared_surface,
&fb->client_rect,
data->PresentHistoryToken);
}
else {
stw_dev->stw_winsys->present( screen, res, hdc );
}
}
stw_framebuffer_update(fb);

View file

@ -79,6 +79,8 @@ struct stw_framebuffer
/* FIXME: Make this work for multiple contexts bound to the same framebuffer */
boolean must_resize;
boolean minimized; /**< Is the window currently minimized? */
unsigned width;
unsigned height;