summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/angle/src/libEGL
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/angle/src/libEGL')
-rw-r--r--src/3rdparty/angle/src/libEGL/Surface.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/3rdparty/angle/src/libEGL/Surface.cpp b/src/3rdparty/angle/src/libEGL/Surface.cpp
index 5a62142b45..a430a3530f 100644
--- a/src/3rdparty/angle/src/libEGL/Surface.cpp
+++ b/src/3rdparty/angle/src/libEGL/Surface.cpp
@@ -172,9 +172,16 @@ bool Surface::resetSwapChain()
bool Surface::resizeSwapChain(int backbufferWidth, int backbufferHeight)
{
- ASSERT(backbufferWidth >= 0 && backbufferHeight >= 0);
ASSERT(mSwapChain);
+ // Prevent bad swap chain resize by calling reset if size is invalid
+ if (backbufferWidth < 1 || backbufferHeight < 1)
+ {
+ mWidth = backbufferWidth;
+ mHeight = backbufferHeight;
+ return mSwapChain->reset(0, 0, mSwapInterval) == EGL_SUCCESS;
+ }
+
EGLint status = mSwapChain->resize(backbufferWidth, backbufferHeight);
if (status == EGL_CONTEXT_LOST)