diff options
Diffstat (limited to 'src/angle/patches/0001-ANGLE-Improve-Windows-Phone-Support.patch')
-rw-r--r-- | src/angle/patches/0001-ANGLE-Improve-Windows-Phone-Support.patch | 265 |
1 files changed, 145 insertions, 120 deletions
diff --git a/src/angle/patches/0001-ANGLE-Improve-Windows-Phone-Support.patch b/src/angle/patches/0001-ANGLE-Improve-Windows-Phone-Support.patch index 1361b8b656..e8f11b5172 100644 --- a/src/angle/patches/0001-ANGLE-Improve-Windows-Phone-Support.patch +++ b/src/angle/patches/0001-ANGLE-Improve-Windows-Phone-Support.patch @@ -1,24 +1,25 @@ -From ed09eff731b5d286e0bf6a5958b937a50ecc2362 Mon Sep 17 00:00:00 2001 -From: Andrew Knight <andrew.knight@intopalo.com> -Date: Tue, 7 Apr 2015 13:24:59 +0300 -Subject: [PATCH 1/5] ANGLE: Improve Windows Phone Support +From bbc3a5f89821030dd2772cd8015070a3da9ad57e Mon Sep 17 00:00:00 2001 +From: Oliver Wolff <oliver.wolff@theqtcompany.com> +Date: Mon, 29 Feb 2016 11:09:24 +0100 +Subject: [PATCH 1/7] ANGLE: Improve Windows Phone Support This contains compile fixes for Windows Phone as well as improved orientation handling. -Change-Id: Ia312b5318b977838a2953f1f530487cbf24974bc +Change-Id: I5011e9980957ff0797db179b36c3be9cac6df497 --- src/3rdparty/angle/src/common/platform.h | 2 ++ .../renderer/d3d/d3d11/DebugAnnotator11.cpp | 2 +- .../src/libANGLE/renderer/d3d/d3d11/NativeWindow.h | 4 +++ - .../src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp | 8 +++-- + .../src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp | 8 ++++- .../libANGLE/renderer/d3d/d3d11/SwapChain11.cpp | 40 ++++++++++++++++++++++ - .../d3d/d3d11/winrt/CoreWindowNativeWindow.cpp | 31 +++++++++++++++-- - .../d3d/d3d11/winrt/CoreWindowNativeWindow.h | 34 +++++++++++++++++- + .../d3d/d3d11/winrt/CoreWindowNativeWindow.cpp | 33 ++++++++++++++++-- + .../d3d/d3d11/winrt/CoreWindowNativeWindow.h | 35 ++++++++++++++++++- .../d3d/d3d11/winrt/InspectableNativeWindow.cpp | 12 +++++++ .../d3d/d3d11/winrt/InspectableNativeWindow.h | 14 +++++++- src/3rdparty/angle/src/libANGLE/validationEGL.cpp | 4 ++- - 10 files changed, 142 insertions(+), 9 deletions(-) + .../src/third_party/systeminfo/SystemInfo.cpp | 4 +-- + 11 files changed, 148 insertions(+), 10 deletions(-) diff --git a/src/3rdparty/angle/src/common/platform.h b/src/3rdparty/angle/src/common/platform.h index 56db297..4e3851c 100644 @@ -35,29 +36,31 @@ index 56db297..4e3851c 100644 # endif # endif diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.cpp -index bc7cdcc..fcca904 100644 +index f9d28e8..2e42859 100644 --- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.cpp +++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.cpp -@@ -60,7 +60,7 @@ bool DebugAnnotator11::getStatus() - { - // ID3DUserDefinedAnnotation::GetStatus doesn't work with the Graphics Diagnostics tools in Visual Studio 2013. +@@ -77,7 +77,7 @@ bool DebugAnnotator11::getStatus() + } + + return true; // Default if initializeDevice() failed +-#elif defined(_DEBUG) ++#elif defined(_DEBUG) && (WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP) + static bool underCapture = true; --#if defined(_DEBUG) && defined(ANGLE_ENABLE_WINDOWS_STORE) -+#if defined(_DEBUG) && defined(ANGLE_ENABLE_WINDOWS_STORE) && (WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP) - // In the Windows Store, we can use IDXGraphicsAnalysis. The call to GetDebugInterface1 only succeeds if the app is under capture. - // This should only be called in DEBUG mode. - // If an app links against DXGIGetDebugInterface1 in release mode then it will fail Windows Store ingestion checks. + // ID3DUserDefinedAnnotation::GetStatus doesn't work with the Graphics Diagnostics tools in diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/NativeWindow.h b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/NativeWindow.h -index ce50c32..81b9ea7 100644 +index f28ce4f..1c94538 100644 --- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/NativeWindow.h +++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/NativeWindow.h -@@ -49,11 +49,15 @@ namespace rx +@@ -54,6 +54,7 @@ namespace rx class NativeWindow { public: + enum RotationFlags { RotateNone = 0, RotateLeft = 1, RotateRight = 2 }; - explicit NativeWindow(EGLNativeWindowType window); - + explicit NativeWindow(EGLNativeWindowType window, + const egl::Config *config, + bool directComposition); +@@ -62,6 +63,9 @@ class NativeWindow bool initialize(); bool getClientRect(LPRECT rect); bool isIconic(); @@ -68,47 +71,50 @@ index ce50c32..81b9ea7 100644 HRESULT createSwapChain(ID3D11Device* device, DXGIFactory* factory, diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp -index eba40a4..dbed23f 100644 +index f7757df..03159bb 100644 --- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp +++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp -@@ -230,7 +230,11 @@ Renderer11::Renderer11(egl::Display *display) +@@ -10,7 +10,9 @@ + + #include <EGL/eglext.h> + #include <sstream> ++#if WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP + #include <VersionHelpers.h> ++#endif + + #include "common/tls.h" + #include "common/utilities.h" +@@ -445,7 +447,11 @@ Renderer11::Renderer11(egl::Display *display) + } } - } +#if defined(ANGLE_ENABLE_WINDOWS_STORE) -+ if (requestedMajorVersion == EGL_DONT_CARE || requestedMajorVersion >= 9) ++ if (requestedMajorVersion == EGL_DONT_CARE || requestedMajorVersion >= 9) +#else - if (requestedMajorVersion == 9 && requestedMinorVersion == 3) + if (requestedMajorVersion == 9 && requestedMinorVersion == 3) +#endif - { - mAvailableFeatureLevels.push_back(D3D_FEATURE_LEVEL_9_3); - } -@@ -587,10 +591,10 @@ egl::ConfigSet Renderer11::generateConfigs() const - config.bindToTextureRGB = (colorBufferFormatInfo.format == GL_RGB); - config.bindToTextureRGBA = (colorBufferFormatInfo.format == GL_RGBA || colorBufferFormatInfo.format == GL_BGRA_EXT); - config.colorBufferType = EGL_RGB_BUFFER; -- config.configCaveat = EGL_NONE; - config.configID = static_cast<EGLint>(configs.size() + 1); - // Can only support a conformant ES2 with feature level greater than 10.0. - config.conformant = (mFeatureLevel >= D3D_FEATURE_LEVEL_10_0) ? (EGL_OPENGL_ES2_BIT | EGL_OPENGL_ES3_BIT_KHR) : EGL_NONE; -+ config.configCaveat = config.conformant == EGL_NONE ? EGL_NON_CONFORMANT_CONFIG : EGL_NONE; - config.depthSize = depthStencilBufferFormatInfo.depthBits; - config.level = 0; - config.matchNativePixmap = EGL_NONE; -@@ -2290,7 +2294,7 @@ bool Renderer11::getShareHandleSupport() const - // chrome needs BGRA. Once chrome fixes this, we should always support them. - // PIX doesn't seem to support using share handles, so disable them. - // Also disable share handles on Feature Level 9_3, since it doesn't support share handles on RGBA8 textures/swapchains. -- return getRendererExtensions().textureFormatBGRA8888 && !gl::DebugAnnotationsActive() && !(mFeatureLevel <= D3D_FEATURE_LEVEL_9_3); -+ return getRendererExtensions().textureFormatBGRA8888 && !gl::DebugAnnotationsActive();// && !(mFeatureLevel <= D3D_FEATURE_LEVEL_9_3); Qt: we don't care about the 9_3 limitation - } - - bool Renderer11::getPostSubBufferSupport() const + { + mAvailableFeatureLevels.push_back(D3D_FEATURE_LEVEL_9_3); + } +@@ -946,12 +952,12 @@ egl::ConfigSet Renderer11::generateConfigs() const + config.bindToTextureRGBA = (colorBufferFormatInfo.format == GL_RGBA || + colorBufferFormatInfo.format == GL_BGRA_EXT); + config.colorBufferType = EGL_RGB_BUFFER; +- config.configCaveat = EGL_NONE; + config.configID = static_cast<EGLint>(configs.size() + 1); + // Can only support a conformant ES2 with feature level greater than 10.0. + config.conformant = (mRenderer11DeviceCaps.featureLevel >= D3D_FEATURE_LEVEL_10_0) + ? (EGL_OPENGL_ES2_BIT | EGL_OPENGL_ES3_BIT_KHR) + : 0; ++ config.configCaveat = config.conformant == EGL_NONE ? EGL_NON_CONFORMANT_CONFIG : EGL_NONE; + + // PresentPathFast may not be conformant + if (mPresentPathFastEnabled) diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp -index 2558528..bcb2505 100644 +index a56d3fa..9432a7f 100644 --- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp +++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp -@@ -154,8 +154,14 @@ EGLint SwapChain11::resetOffscreenTexture(int backbufferWidth, int backbufferHei +@@ -222,8 +222,14 @@ EGLint SwapChain11::resetOffscreenColorBuffer(int backbufferWidth, int backbuffe const bool useSharedResource = !mNativeWindow.getNativeWindow() && mRenderer->getShareHandleSupport(); D3D11_TEXTURE2D_DESC offscreenTextureDesc = {0}; @@ -123,9 +129,9 @@ index 2558528..bcb2505 100644 offscreenTextureDesc.Format = backbufferFormatInfo.texFormat; offscreenTextureDesc.MipLevels = 1; offscreenTextureDesc.ArraySize = 1; -@@ -235,8 +241,14 @@ EGLint SwapChain11::resetOffscreenTexture(int backbufferWidth, int backbufferHei - if (mDepthBufferFormat != GL_NONE) - { +@@ -336,8 +342,14 @@ EGLint SwapChain11::resetOffscreenDepthBuffer(int backbufferWidth, int backbuffe + d3d11::GetTextureFormatInfo(mDepthBufferFormat, mRenderer->getRenderer11DeviceCaps()); + D3D11_TEXTURE2D_DESC depthStencilTextureDesc; +#if defined(ANGLE_ENABLE_WINDOWS_STORE) && (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP) + const int textureLength = std::max(backbufferWidth, backbufferHeight); @@ -138,18 +144,18 @@ index 2558528..bcb2505 100644 depthStencilTextureDesc.Format = depthBufferFormatInfo.texFormat; depthStencilTextureDesc.MipLevels = 1; depthStencilTextureDesc.ArraySize = 1; -@@ -337,6 +349,7 @@ EGLint SwapChain11::resize(EGLint backbufferWidth, EGLint backbufferHeight) +@@ -422,6 +434,7 @@ EGLint SwapChain11::resize(EGLint backbufferWidth, EGLint backbufferHeight) return EGL_SUCCESS; } +#if !defined(ANGLE_ENABLE_WINDOWS_STORE) || (WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP) // Can only call resize if we have already created our swap buffer and resources - ASSERT(mSwapChain && mBackBufferTexture && mBackBufferRTView); + ASSERT(mSwapChain && mBackBufferTexture && mBackBufferRTView && mBackBufferSRView); -@@ -379,6 +392,12 @@ EGLint SwapChain11::resize(EGLint backbufferWidth, EGLint backbufferHeight) - } +@@ -479,6 +492,12 @@ EGLint SwapChain11::resize(EGLint backbufferWidth, EGLint backbufferHeight) + mFirstSwap = true; - return resetOffscreenTexture(backbufferWidth, backbufferHeight); + return resetOffscreenBuffers(backbufferWidth, backbufferHeight); +#else + // Do nothing on Windows Phone apart from updating the internal buffer/width height + mWidth = backbufferWidth; @@ -158,8 +164,8 @@ index 2558528..bcb2505 100644 +#endif } - EGLint SwapChain11::reset(int backbufferWidth, int backbufferHeight, EGLint swapInterval) -@@ -539,6 +558,21 @@ EGLint SwapChain11::swapRect(EGLint x, EGLint y, EGLint width, EGLint height) + DXGI_FORMAT SwapChain11::getSwapChainNativeFormat() const +@@ -704,6 +723,21 @@ EGLint SwapChain11::copyOffscreenToBackbuffer(EGLint x, EGLint y, EGLint width, float x2 = ((x + width) / float(mWidth)) * 2.0f - 1.0f; float y2 = ((y + height) / float(mHeight)) * 2.0f - 1.0f; @@ -181,7 +187,7 @@ index 2558528..bcb2505 100644 float u1 = x / float(mWidth); float v1 = y / float(mHeight); float u2 = (x + width) / float(mWidth); -@@ -548,6 +582,7 @@ EGLint SwapChain11::swapRect(EGLint x, EGLint y, EGLint width, EGLint height) +@@ -723,6 +757,7 @@ EGLint SwapChain11::copyOffscreenToBackbuffer(EGLint x, EGLint y, EGLint width, d3d11::SetPositionTexCoordVertex(&vertices[1], x1, y2, u1, v2); d3d11::SetPositionTexCoordVertex(&vertices[2], x2, y1, u2, v1); d3d11::SetPositionTexCoordVertex(&vertices[3], x2, y2, u2, v2); @@ -189,7 +195,7 @@ index 2558528..bcb2505 100644 deviceContext->Unmap(mQuadVB, 0); -@@ -577,8 +612,13 @@ EGLint SwapChain11::swapRect(EGLint x, EGLint y, EGLint width, EGLint height) +@@ -752,8 +787,13 @@ EGLint SwapChain11::copyOffscreenToBackbuffer(EGLint x, EGLint y, EGLint width, D3D11_VIEWPORT viewport; viewport.TopLeftX = 0; viewport.TopLeftY = 0; @@ -197,14 +203,14 @@ index 2558528..bcb2505 100644 + viewport.Width = (rotateL || rotateR) ? mHeight : mWidth; + viewport.Height = (rotateL || rotateR) ? mWidth : mHeight; +#else - viewport.Width = mWidth; - viewport.Height = mHeight; + viewport.Width = static_cast<FLOAT>(mWidth); + viewport.Height = static_cast<FLOAT>(mHeight); +#endif viewport.MinDepth = 0.0f; viewport.MaxDepth = 1.0f; deviceContext->RSSetViewports(1, &viewport); diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp -index 8cfaa84..350526c 100644 +index 71f0e42..6a4795a 100644 --- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp +++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp @@ -8,8 +8,6 @@ @@ -224,7 +230,7 @@ index 8cfaa84..350526c 100644 ComPtr<IPropertySet> props = propertySet; ComPtr<IInspectable> win = window; SIZE swapChainSize = {}; -@@ -68,6 +67,16 @@ bool CoreWindowNativeWindow::initialize(EGLNativeWindowType window, IPropertySet +@@ -100,6 +99,16 @@ bool CoreWindowNativeWindow::initialize(EGLNativeWindowType window, IPropertySet if (SUCCEEDED(result)) { @@ -241,7 +247,7 @@ index 8cfaa84..350526c 100644 mNewClientRect = mClientRect; mClientRectChanged = false; return registerForSizeChangeEvents(); -@@ -85,6 +94,15 @@ bool CoreWindowNativeWindow::registerForSizeChangeEvents() +@@ -117,6 +126,15 @@ bool CoreWindowNativeWindow::registerForSizeChangeEvents() result = mCoreWindow->add_SizeChanged(sizeChangedHandler.Get(), &mSizeChangedEventToken); } @@ -257,22 +263,24 @@ index 8cfaa84..350526c 100644 if (SUCCEEDED(result)) { return true; -@@ -99,7 +117,14 @@ void CoreWindowNativeWindow::unregisterForSizeChangeEvents() +@@ -131,7 +149,16 @@ void CoreWindowNativeWindow::unregisterForSizeChangeEvents() { (void)mCoreWindow->remove_SizeChanged(mSizeChangedEventToken); } ++ +#if defined(ANGLE_ENABLE_WINDOWS_STORE) && (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP) + if (mDisplayInformation) + { + (void)mDisplayInformation->remove_OrientationChanged(mOrientationChangedEventToken); + } +#endif ++ mSizeChangedEventToken.value = 0; + mOrientationChangedEventToken.value = 0; } - HRESULT CoreWindowNativeWindow::createSwapChain(ID3D11Device *device, DXGIFactory *factory, DXGI_FORMAT format, unsigned int width, unsigned int height, DXGISwapChain **swapChain) -@@ -128,7 +153,7 @@ HRESULT CoreWindowNativeWindow::createSwapChain(ID3D11Device *device, DXGIFactor + HRESULT CoreWindowNativeWindow::createSwapChain(ID3D11Device *device, +@@ -168,7 +195,7 @@ HRESULT CoreWindowNativeWindow::createSwapChain(ID3D11Device *device, if (SUCCEEDED(result)) { @@ -282,7 +290,7 @@ index 8cfaa84..350526c 100644 // other devices DXGI_ERROR_INVALID_CALL should be returned because the combination of flags passed // (DXGI_SWAP_CHAIN_FLAG_NONPREROTATED | DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE) are invalid flag combinations. diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h -index c230c84..59df9d5 100644 +index 7747005..4de235a 100644 --- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h +++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h @@ -12,8 +12,10 @@ @@ -296,7 +304,7 @@ index c230c84..59df9d5 100644 namespace rx { -@@ -32,11 +34,13 @@ class CoreWindowNativeWindow : public InspectableNativeWindow, public std::enabl +@@ -42,11 +44,13 @@ class CoreWindowNativeWindow : public InspectableNativeWindow, public std::enabl private: ComPtr<ABI::Windows::UI::Core::ICoreWindow> mCoreWindow; ComPtr<IMap<HSTRING, IInspectable*>> mPropertyMap; @@ -311,46 +319,47 @@ index c230c84..59df9d5 100644 { public: CoreWindowSizeChangedHandler() { } -@@ -68,6 +72,34 @@ class CoreWindowSizeChangedHandler : +@@ -78,6 +82,35 @@ class CoreWindowSizeChangedHandler : return S_OK; } -+ IFACEMETHOD(Invoke)(ABI::Windows::Graphics::Display::IDisplayInformation *displayInformation, IInspectable *) -+ { -+#if defined(ANGLE_ENABLE_WINDOWS_STORE) && (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP) -+ NativeWindow::RotationFlags flags = NativeWindow::RotateNone; -+ ABI::Windows::Graphics::Display::DisplayOrientations orientation; -+ if (SUCCEEDED(displayInformation->get_CurrentOrientation(&orientation))) ++ IFACEMETHOD(Invoke)(ABI::Windows::Graphics::Display::IDisplayInformation *displayInformation, IInspectable *) + { -+ switch (orientation) ++ #if defined(ANGLE_ENABLE_WINDOWS_STORE) && (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP) ++ NativeWindow::RotationFlags flags = NativeWindow::RotateNone; ++ ABI::Windows::Graphics::Display::DisplayOrientations orientation; ++ if (SUCCEEDED(displayInformation->get_CurrentOrientation(&orientation))) + { -+ case ABI::Windows::Graphics::Display::DisplayOrientations_Landscape: -+ flags = NativeWindow::RotateLeft; -+ break; -+ case ABI::Windows::Graphics::Display::DisplayOrientations_LandscapeFlipped: -+ flags = NativeWindow::RotateRight; -+ break; -+ default: -+ break; ++ switch (orientation) ++ { ++ case ABI::Windows::Graphics::Display::DisplayOrientations_Landscape: ++ flags = NativeWindow::RotateLeft; ++ break; ++ case ABI::Windows::Graphics::Display::DisplayOrientations_LandscapeFlipped: ++ flags = NativeWindow::RotateRight; ++ break; ++ default: ++ break; ++ } + } ++ std::shared_ptr<InspectableNativeWindow> host = mHost.lock(); ++ if (host) ++ { ++ host->setRotationFlags(flags); ++ } ++ #endif ++ return S_OK; + } -+ std::shared_ptr<InspectableNativeWindow> host = mHost.lock(); -+ if (host) -+ { -+ host->setRotationFlags(flags); -+ } -+#endif -+ return S_OK; -+ } ++ + private: std::weak_ptr<InspectableNativeWindow> mHost; }; diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.cpp -index 7ac53c7..2bf48c5 100644 +index 47a6dae..c9b203e 100644 --- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.cpp +++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.cpp -@@ -69,6 +69,18 @@ bool NativeWindow::getClientRect(RECT *rect) +@@ -80,6 +80,18 @@ bool NativeWindow::getClientRect(RECT *rect) return false; } @@ -370,11 +379,11 @@ index 7ac53c7..2bf48c5 100644 { return false; diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.h b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.h -index e89c900..575bdf8 100644 +index 4b9cf80..70e5fe7 100644 --- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.h +++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.h -@@ -34,7 +34,8 @@ class InspectableNativeWindow - mRequiresSwapChainScaling(false), +@@ -36,7 +36,8 @@ class InspectableNativeWindow + mSwapChainScale(1.0f), mClientRectChanged(false), mClientRect({0,0,0,0}), - mNewClientRect({0,0,0,0}) @@ -383,7 +392,7 @@ index e89c900..575bdf8 100644 { mSizeChangedEventToken.value = 0; } -@@ -72,12 +73,23 @@ class InspectableNativeWindow +@@ -94,6 +95,16 @@ class InspectableNativeWindow } } @@ -397,9 +406,10 @@ index e89c900..575bdf8 100644 + mRotationFlags = flags; + } + - protected: - bool mSupportsSwapChainResize; - bool mRequiresSwapChainScaling; + protected: + virtual HRESULT scaleSwapChain(const SIZE &windowSize, const RECT &clientRect) = 0; + +@@ -104,6 +115,7 @@ class InspectableNativeWindow RECT mClientRect; RECT mNewClientRect; bool mClientRectChanged; @@ -408,10 +418,10 @@ index e89c900..575bdf8 100644 EventRegistrationToken mSizeChangedEventToken; }; diff --git a/src/3rdparty/angle/src/libANGLE/validationEGL.cpp b/src/3rdparty/angle/src/libANGLE/validationEGL.cpp -index 4e3b44b..12ee6a2 100644 +index bff3c94..972f6a7 100644 --- a/src/3rdparty/angle/src/libANGLE/validationEGL.cpp +++ b/src/3rdparty/angle/src/libANGLE/validationEGL.cpp -@@ -160,7 +160,7 @@ Error ValidateCreateContext(Display *display, Config *configuration, gl::Context +@@ -269,7 +269,7 @@ Error ValidateCreateContext(Display *display, Config *configuration, gl::Context return Error(EGL_BAD_CONFIG); } @@ -420,20 +430,35 @@ index 4e3b44b..12ee6a2 100644 { return Error(EGL_BAD_CONFIG); } -@@ -488,11 +488,13 @@ Error ValidateCreatePbufferFromClientBuffer(Display *display, EGLenum buftype, E - return Error(EGL_BAD_ATTRIBUTE); - } +@@ -496,6 +496,7 @@ Error ValidateCreatePbufferSurface(Display *display, Config *config, const Attri + return Error(EGL_BAD_MATCH); + } +#if !defined(ANGLE_ENABLE_WINDOWS_STORE) // On Windows Store, we know the originating texture came from D3D11, so bypass this check - const Caps &caps = display->getCaps(); - if (textureFormat != EGL_NO_TEXTURE && !caps.textureNPOT && (!gl::isPow2(width) || !gl::isPow2(height))) - { - return Error(EGL_BAD_MATCH); - } -+#endif + const Caps &caps = display->getCaps(); + + EGLenum textureFormat = attributes.get(EGL_TEXTURE_FORMAT, EGL_NO_TEXTURE); +@@ -519,6 +520,7 @@ Error ValidateCreatePbufferSurface(Display *display, Config *config, const Attri + { + return Error(EGL_BAD_MATCH); } ++#endif return Error(EGL_SUCCESS); + } +diff --git a/src/3rdparty/angle/src/third_party/systeminfo/SystemInfo.cpp b/src/3rdparty/angle/src/third_party/systeminfo/SystemInfo.cpp +index 97dfcaa..e082895 100644 +--- a/src/3rdparty/angle/src/third_party/systeminfo/SystemInfo.cpp ++++ b/src/3rdparty/angle/src/third_party/systeminfo/SystemInfo.cpp +@@ -26,7 +26,7 @@ + #include <windows.h> + #include "common/platform.h" + +-#if _WIN32_WINNT_WINBLUE ++#if _WIN32_WINNT_WINBLUE && WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP + #include <versionhelpers.h> + #endif + -- -2.1.4 +2.7.0.windows.1 |