ANGLE: Invalidate client window area when resetting swap chain

Resizing a window larger results in the newly exposed region being
invalidated but the old region is treated as valid. This can result in
the old region no longer updating. This has been observed on Windows 7
64-bit with Aero theme using NVIDIA GeForce GTS 250 and driver version
301.42. Invalidate the entire client window area when resetting the
swap chain so that it updates properly.

Upstream patch: https://codereview.appspot.com/6812076/

Task-number: QTBUG-27822
Change-Id: I0f5d2004576019458baee74c35e52f69b893a219
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
This commit is contained in:
Jonathan Liu 2012-11-15 19:50:54 +11:00 committed by The Qt Project
parent aeb566db73
commit aa309b9677
2 changed files with 2 additions and 0 deletions

View File

@ -24,6 +24,7 @@ Ginn Chen
James Hauxwell
Sam Hocevar
Pierre Leveille
Jonathan Liu
Boying Lu
Aitor Moreno
Yuri O'Donnell

View File

@ -326,6 +326,7 @@ bool Surface::resetSwapChain(int backbufferWidth, int backbufferHeight)
result = mSwapChain->GetBackBuffer(0, D3DBACKBUFFER_TYPE_MONO, &mBackBuffer);
ASSERT(SUCCEEDED(result));
InvalidateRect(mWindow, NULL, FALSE);
}
if (mConfig->mDepthStencilFormat != D3DFMT_UNKNOWN)