summaryrefslogtreecommitdiffstats
path: root/src/angle/patches/0004-Fix-black-screen-after-minimizing-OpenGL-window-with.patch
blob: 6eb84fd02e245a2d9905e217d804167e9d33aaad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
From 991dfbdfc018cb30bc1ac4df429411680b47d674 Mon Sep 17 00:00:00 2001
From: Miikka Heikkinen <miikka.heikkinen@digia.com>
Date: Sat, 14 Sep 2013 11:07:45 +0300
Subject: [PATCH] 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>
---
 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