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. Original bug report: https://bugreports.qt-project.org/browse/QTBUG-27822 Review: http://codereview.appspot.com/6812076/ Author: Jonathan Liu git-svn-id: https://angleproject.googlecode.com/svn/trunk@1392 736b8ea6-26fd-11df-bfd4-992fa37f6226
parent 126bf014
...@@ -24,6 +24,7 @@ Ginn Chen ...@@ -24,6 +24,7 @@ Ginn Chen
James Hauxwell James Hauxwell
Sam Hocevar Sam Hocevar
Pierre Leveille Pierre Leveille
Jonathan Liu
Boying Lu Boying Lu
Aitor Moreno Aitor Moreno
Yuri O'Donnell Yuri O'Donnell
......
#define MAJOR_VERSION 1 #define MAJOR_VERSION 1
#define MINOR_VERSION 0 #define MINOR_VERSION 0
#define BUILD_VERSION 0 #define BUILD_VERSION 0
#define BUILD_REVISION 1390 #define BUILD_REVISION 1392
#define STRINGIFY(x) #x #define STRINGIFY(x) #x
#define MACRO_STRINGIFY(x) STRINGIFY(x) #define MACRO_STRINGIFY(x) STRINGIFY(x)
......
...@@ -309,6 +309,7 @@ bool Surface::resetSwapChain(int backbufferWidth, int backbufferHeight) ...@@ -309,6 +309,7 @@ bool Surface::resetSwapChain(int backbufferWidth, int backbufferHeight)
result = mSwapChain->GetBackBuffer(0, D3DBACKBUFFER_TYPE_MONO, &mBackBuffer); result = mSwapChain->GetBackBuffer(0, D3DBACKBUFFER_TYPE_MONO, &mBackBuffer);
ASSERT(SUCCEEDED(result)); ASSERT(SUCCEEDED(result));
InvalidateRect(mWindow, NULL, FALSE);
} }
if (mConfig->mDepthStencilFormat != D3DFMT_UNKNOWN) if (mConfig->mDepthStencilFormat != D3DFMT_UNKNOWN)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment