mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-22 14:00:37 +02:00
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:
parent
505ac6ddc6
commit
02039066a8
2 changed files with 15 additions and 9 deletions
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue