Remove Windows 8.1 (Store apps) and Windows Phone 8.1 support

ANGLE has moved onto the Windows 10 SDK, and is using new compiler
features that aren't supported by the old Windows 8.1 toolchain. Support
for the 8.1 projects has been broken in master for some time now.

Since more and more developers are moving towards Windows 10, we
are going to take a snapshot of ANGLE that includes 8.1 support and
freeze it in a branch on github.com/microsoft/angle. If developers
wish to compile for use ANGLE in 8.1 apps then they should use that
branch going forward.

Change-Id: Ifee2d8a8cc0332500e0bd338911d831e7624fa82
Reviewed-on: https://chromium-review.googlesource.com/374039
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/build/common.gypi b/build/common.gypi
index 836df00..37a6776 100644
--- a/build/common.gypi
+++ b/build/common.gypi
@@ -8,8 +8,7 @@
     {
         'angle_path': '<(DEPTH)',
         'angle_build_winrt%': '0',
-        'angle_build_winphone%': '0',
-        'angle_build_winrt_app_type_revision%': '8.1',
+        'angle_build_winrt_app_type_revision%': '10.0',
         'angle_build_winrt_target_platform_ver%' : '',
         # angle_code is set to 1 for the core ANGLE targets defined in src/build_angle.gyp.
         # angle_code is set to 0 for test code, sample code, and third party code.
@@ -75,10 +74,6 @@
                 'msvs_application_type_revision' : '<(angle_build_winrt_app_type_revision)',
                 'msvs_target_platform_version' : '<(angle_build_winrt_target_platform_ver)',
             }],
-            ['angle_build_winphone==1',
-            {
-                'msvs_enable_winphone' : '1',
-            }],
         ],
         'configurations':
         {
@@ -304,7 +299,7 @@
             },
             'conditions':
             [
-                ['angle_build_winrt==0 and OS == "win" and MSVS_VERSION != "2010e"',
+                ['OS == "win"',
                 {
                     'Debug_x64':
                     {
@@ -333,28 +328,6 @@
                             },
                         },
                     }, # arm_Base
-                }],
-                ['angle_build_winrt==1 and angle_build_winphone==0',
-                {
-                    'Debug_x64':
-                    {
-                        'inherit_from': ['Common_Base', 'x64_Base', 'Debug_Base'],
-                    },
-                    'Release_x64':
-                    {
-                        'inherit_from': ['Common_Base', 'x64_Base', 'Release_Base'],
-                    },
-                    'Debug_ARM':
-                    {
-                        'inherit_from': ['Common_Base', 'arm_Base', 'Debug_Base'],
-                    },
-                    'Release_ARM':
-                    {
-                        'inherit_from': ['Common_Base', 'arm_Base', 'Release_Base'],
-                    },
-                }],
-                ['angle_build_winrt==1 and angle_build_winphone==1',
-                {
                     'Debug_ARM':
                     {
                         'inherit_from': ['Common_Base', 'arm_Base', 'Debug_Base'],
diff --git a/build/common_defines.gypi b/build/common_defines.gypi
index 8d2b563..02e717d 100644
--- a/build/common_defines.gypi
+++ b/build/common_defines.gypi
@@ -10,7 +10,6 @@
         'windows_sdk_path%': 'C:/Program Files (x86)/Windows Kits/10',
 
         'angle_build_winrt%': '0',
-        'angle_build_winphone%': '0',
 
         # This works like the Ozone GBM platform in Chrome:
         # - Generic Buffer Manager (gbm) to allocate buffers
@@ -56,16 +55,6 @@
                 4251, # STL objects do not have DLL interface, needed by ShaderVars.h
             ],
         }],
-        # Normally the WinRT project should rely on the default SDK header include paths
-        # However, the WinPhone projects also need the Windows SDK path for DXProgrammableCapture.h
-        ['angle_build_winrt==0 or angle_build_winphone==1',
-        {
-            'msvs_system_include_dirs':
-            [
-                '<(windows_sdk_path)/Include/shared',
-                '<(windows_sdk_path)/Include/um',
-            ],
-        }],
     ],
     'msvs_settings':
     {
diff --git a/build/gyp_angle b/build/gyp_angle
index 8ddc7ee..1f9e20c 100755
--- a/build/gyp_angle
+++ b/build/gyp_angle
@@ -37,7 +37,7 @@
 
     gyp.main(args)
 
-def generateWinRTProjects(generate_args, generation_dir, build_winphone, msvs_version, app_type_rev,
+def generateWinRTProjects(generate_args, generation_dir, msvs_version, app_type_rev,
                           target_platform_ver):
     args = generate_args
     appendCommonArgs(args)
@@ -50,7 +50,6 @@
     args.append('-Dangle_build_winrt=1')
     args.append('-Dangle_build_winrt_app_type_revision=' + app_type_rev)
     args.append('-Dangle_build_winrt_target_platform_ver=' + target_platform_ver)
-    args.append('-Dangle_build_winphone=' + ('1' if build_winphone else '0'))
     args.append('-Dangle_enable_d3d9=0')
     args.append('-Dangle_enable_gl=0')
     args.append('-Dangle_enable_essl=0')
@@ -73,12 +72,6 @@
 
     # Generate WinRT projects only if configured
     if 'GYP_GENERATE_WINRT' in os.environ:
-      # Generate Windows 8.1 projects
-      args = sys.argv[1:]
-      generateWinRTProjects(args, "winrt/8.1/windows", False, "2013e", "8.1", "");
-      args = sys.argv[1:]
-      generateWinRTProjects(args, "winrt/8.1/windowsphone", True, "2013e", "8.1", "");
-
       # Generate Windows 10 projects
       args = sys.argv[1:]
-      generateWinRTProjects(args, "winrt/10", False, "2015", "10.0", "10.0.10240.0");
+      generateWinRTProjects(args, "winrt/10", "2015", "10.0", "10.0.10240.0");
diff --git a/doc/BuildingAngleForWindowsStore.md b/doc/BuildingAngleForWindowsStore.md
index 6f65144..35f77c2 100644
--- a/doc/BuildingAngleForWindowsStore.md
+++ b/doc/BuildingAngleForWindowsStore.md
@@ -8,7 +8,7 @@
 
 ### Required Tools
  * [Visual Studio Community 2015](http://www.visualstudio.com/downloads/download-visual-studio-vs)
-   * Required to build ANGLE on Windows and for the packaged Windows 8.1 SDK.
+   * Required to build ANGLE on Windows and for the packaged Windows 10 SDK.
 
 
 ### Getting the source
@@ -29,8 +29,6 @@
 
 Gyp will generate multiple VS2015 solution files
  * `winrt/10/src/angle.sln` for Windows 10
- * `winrt/8.1/windows/src/angle.sln` for Windows 8.1
- * `winrt/8.1/windowsphone/src/angle.sln` for Windows Phone 8.1
 
 
 ### Building ANGLE
diff --git a/src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.cpp b/src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.cpp
index f9d28e8..93343f2 100644
--- a/src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.cpp
+++ b/src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.cpp
@@ -68,7 +68,7 @@
 bool DebugAnnotator11::getStatus()
 {
 #if defined(ANGLE_ENABLE_WINDOWS_STORE)
-#if (NTDDI_VERSION == NTDDI_WIN10)
+    static_assert(NTDDI_VERSION >= NTDDI_WIN10, "GetStatus only works on Win10 and above");
     initializeDevice();
 
     if (mUserDefinedAnnotation != nullptr)
@@ -77,38 +77,6 @@
     }
 
     return true;  // Default if initializeDevice() failed
-#elif defined(_DEBUG)
-    static bool underCapture = true;
-
-    // ID3DUserDefinedAnnotation::GetStatus doesn't work with the Graphics Diagnostics tools in
-    // Windows 8.1/Visual Studio 2013. We can use IDXGraphicsAnalysis, though.
-    // 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.
-
-    // Cache the result to reduce the number of calls to DXGIGetDebugInterface1
-    static bool triedIDXGraphicsAnalysis = false;
-
-    if (!triedIDXGraphicsAnalysis)
-    {
-        IDXGraphicsAnalysis *graphicsAnalysis = nullptr;
-
-        HRESULT result = DXGIGetDebugInterface1(0, IID_PPV_ARGS(&graphicsAnalysis));
-        if (SUCCEEDED(result))
-        {
-            underCapture = (graphicsAnalysis != nullptr);
-        }
-
-        SafeRelease(graphicsAnalysis);
-        triedIDXGraphicsAnalysis = true;
-    }
-
-    return underCapture;
-#else
-    // We can't detect GetStatus() on release WinRT 8.1 builds, so always return true.
-    return true;
-#endif  // (NTDDI_VERSION == NTDDI_WIN10) or _DEBUG
 #else
     // We can't detect GetStatus() on desktop ANGLE builds so always return true.
     return true;
diff --git a/src/libANGLE/renderer/d3d/d3d11/Trim11.cpp b/src/libANGLE/renderer/d3d/d3d11/Trim11.cpp
index ca48b18..29185a9 100644
--- a/src/libANGLE/renderer/d3d/d3d11/Trim11.cpp
+++ b/src/libANGLE/renderer/d3d/d3d11/Trim11.cpp
@@ -47,7 +47,6 @@
 
 #if defined (ANGLE_ENABLE_WINDOWS_STORE)
     ID3D11Device* device = mRenderer->getDevice();
-    // IDXGIDevice3 is only supported on Windows 8.1 and Windows Phone 8.1 and above.
     IDXGIDevice3 *dxgiDevice3 = d3d11::DynamicCastComObject<IDXGIDevice3>(device);
     if (dxgiDevice3)
     {
diff --git a/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp b/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp
index fa00d60..0211e68 100644
--- a/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp
+++ b/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp
@@ -167,17 +167,6 @@
     HRESULT result = factory->CreateSwapChainForCoreWindow(device, mCoreWindow.Get(), &swapChainDesc, nullptr, newSwapChain.ReleaseAndGetAddressOf());
     if (SUCCEEDED(result))
     {
-
-#if (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP)
-        // Test if swapchain supports resize.  On Windows Phone devices, this will return DXGI_ERROR_UNSUPPORTED.  On
-        // 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.
-        if (newSwapChain->ResizeBuffers(swapChainDesc.BufferCount, swapChainDesc.Width, swapChainDesc.Height, swapChainDesc.Format, DXGI_SWAP_CHAIN_FLAG_NONPREROTATED | DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE) == DXGI_ERROR_UNSUPPORTED)
-        {
-            mSupportsSwapChainResize = false;
-        }
-#endif // (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP)
-
         result = newSwapChain.CopyTo(swapChain);
     }
 
diff --git a/src/libGLESv2.gypi b/src/libGLESv2.gypi
index ff44449..079dc34 100644
--- a/src/libGLESv2.gypi
+++ b/src/libGLESv2.gypi
@@ -995,10 +995,6 @@
                 {
                     'msvs_requires_importlibrary' : 'true',
                 }],
-                ['angle_build_winphone==1',
-                {
-                    'msvs_enable_winphone' : '1',
-                }],
             ],
         },
     ],