summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2012-11-20 13:23:27 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-11-20 14:13:07 +0100
commit85e9ba49580e307e1213c87cdbfdc301848f497f (patch)
tree44540ae4a8cfd46ab346bc1d38f6f6ce402cc3ad /src
parentb8341127c03f9b6297c6d8ff47e98380677de9aa (diff)
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>
Diffstat (limited to 'src')
-rw-r--r--src/3rdparty/angle/src/libEGL/Surface.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/3rdparty/angle/src/libEGL/Surface.cpp b/src/3rdparty/angle/src/libEGL/Surface.cpp
index 8e920ab81e..174b40375d 100644
--- a/src/3rdparty/angle/src/libEGL/Surface.cpp
+++ b/src/3rdparty/angle/src/libEGL/Surface.cpp
@@ -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))