From 0b8f4889511d7aa8f9f07b16dbf204f378e127a6 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Mon, 18 Mar 2013 16:27:07 +0200 Subject: [PATCH 3/6] 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 --- src/3rdparty/angle/src/libGLESv2/renderer/SwapChain9.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/SwapChain9.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/SwapChain9.cpp index 0324d01..f57a874 100644 --- a/src/3rdparty/angle/src/libGLESv2/renderer/SwapChain9.cpp +++ b/src/3rdparty/angle/src/libGLESv2/renderer/SwapChain9.cpp @@ -137,6 +137,21 @@ EGLint SwapChain9::reset(int backbufferWidth, int backbufferHeight, EGLint swapI 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; + + return EGL_SUCCESS; + } + result = device->CreateTexture(backbufferWidth, backbufferHeight, 1, D3DUSAGE_RENDERTARGET, gl_d3d9::ConvertRenderbufferFormat(mBackBufferFormat), D3DPOOL_DEFAULT, &mOffscreenTexture, pShareHandle); -- 1.8.1.msysgit.1