Merge in ANGLE r701 and r688

This wasn't delay-loading dwmapi.dll, causing it to fail on XP.
Review URL: https://chromereviews.googleplex.com/3895016
diff --git a/src/OpenGL ES 2.0/libEGL/Surface.cpp b/src/OpenGL ES 2.0/libEGL/Surface.cpp
index d340e1b..456bf01 100644
--- a/src/OpenGL ES 2.0/libEGL/Surface.cpp
+++ b/src/OpenGL ES 2.0/libEGL/Surface.cpp
@@ -23,6 +23,22 @@
 namespace egl
 {
 
+namespace
+{
+const int versionWindowsVista = MAKEWORD(0x00, 0x06);
+const int versionWindows7 = MAKEWORD(0x01, 0x06);
+
+// Return the version of the operating system in a format suitable for ordering
+// comparison.
+int getComparableOSVersion()
+{
+    DWORD version = GetVersion();
+    int majorVersion = LOBYTE(LOWORD(version));
+    int minorVersion = HIBYTE(LOWORD(version));
+    return MAKEWORD(minorVersion, majorVersion);
+}
+}
+
 Surface::Surface(Display *display, const Config *config, HWND window) 
     : mDisplay(display), mConfig(config), mWindow(window)
 {
@@ -80,7 +96,7 @@
     // Modify present parameters for this window, if we are composited,
     // to minimize the amount of queuing done by DWM between our calls to
     // present and the actual screen.
-    if(mWindow && (LOWORD(GetVersion()) >= 0x60))
+    if (mWindow && (getComparableOSVersion() >= versionWindowsVista))
 	{
         BOOL isComposited;
         HRESULT result = DwmIsCompositionEnabled(&isComposited);
diff --git a/src/OpenGL ES 2.0/libEGL/libEGL.vcproj b/src/OpenGL ES 2.0/libEGL/libEGL.vcproj
index adf527d..68b041f 100644
--- a/src/OpenGL ES 2.0/libEGL/libEGL.vcproj
+++ b/src/OpenGL ES 2.0/libEGL/libEGL.vcproj
@@ -146,7 +146,7 @@
 				AdditionalDependencies="d3d9.lib dxguid.lib dwmapi.lib"

 				LinkIncremental="1"

 				ModuleDefinitionFile="libEGL.def"

-				DelayLoadDLLs="dwmapi.lib"

+				DelayLoadDLLs="dwmapi.dll"

 				GenerateDebugInformation="true"

 				SubSystem="2"

 				OptimizeReferences="2"