Fix black screen after minimizing OpenGL window with ANGLE

CreateTexture will fail on zero dimensions, so just release old target
and reset dimensions when resetSwapChain is called with zero size area.

Task-number: QTBUG-27994
Change-Id: I1e500c4fd4b92f7d9ea2a49a44f3fb930b575cd1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
bb10
Miikka Heikkinen 2012-11-20 13:23:27 +02:00 committed by The Qt Project
parent b8341127c0
commit 85e9ba4958
1 changed files with 16 additions and 0 deletions

View File

@ -224,6 +224,22 @@ bool Surface::resetSwapChain(int backbufferWidth, int backbufferHeight)
pShareHandle = &mShareHandle;
}
// CreateTexture will fail on zero dimensions, so just release old target
if (!backbufferWidth || !backbufferHeight)
{
if (mRenderTarget)
{
mRenderTarget->Release();
mRenderTarget = NULL;
}
mWidth = backbufferWidth;
mHeight = backbufferHeight;
mPresentIntervalDirty = false;
return true;
}
result = device->CreateTexture(backbufferWidth, backbufferHeight, 1, D3DUSAGE_RENDERTARGET,
mConfig->mRenderTargetFormat, D3DPOOL_DEFAULT, &mOffscreenTexture, pShareHandle);
if (FAILED(result))