summaryrefslogtreecommitdiffstats
path: root/src/angle/patches/0001-Dynamically-resolve-functions-of-dwmapi.dll.patch
diff options
context:
space:
mode:
Diffstat (limited to 'src/angle/patches/0001-Dynamically-resolve-functions-of-dwmapi.dll.patch')
-rw-r--r--src/angle/patches/0001-Dynamically-resolve-functions-of-dwmapi.dll.patch75
1 files changed, 0 insertions, 75 deletions
diff --git a/src/angle/patches/0001-Dynamically-resolve-functions-of-dwmapi.dll.patch b/src/angle/patches/0001-Dynamically-resolve-functions-of-dwmapi.dll.patch
deleted file mode 100644
index b259aa3f80..0000000000
--- a/src/angle/patches/0001-Dynamically-resolve-functions-of-dwmapi.dll.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From 211954dffc6a0ee52db130017ae4bea00e80748f Mon Sep 17 00:00:00 2001
-From: Friedemann Kleint <Friedemann.Klient@digia.com>
-Date: Mon, 18 Mar 2013 15:35:13 +0200
-Subject: [PATCH 1/6] Dynamically resolve functions of dwmapi.dll.
-
-The library is not present on Windows XP, for which /DELAYLOAD
-is used in ANGLE. However, as this causes problems with MinGW,
-use dynamic resolution.
-
-Task-number: QTBUG-27741
-Change-Id: I16214d6f98a184d89858c50ee5306371ea25469e
----
- src/3rdparty/angle/src/libEGL/Surface.cpp | 39 ++++++++++++++++++++++++++++-----------
- 1 file changed, 28 insertions(+), 11 deletions(-)
-
-diff --git a/src/3rdparty/angle/src/libEGL/Surface.cpp b/src/3rdparty/angle/src/libEGL/Surface.cpp
-index 78203b0..5ece724 100644
---- a/src/3rdparty/angle/src/libEGL/Surface.cpp
-+++ b/src/3rdparty/angle/src/libEGL/Surface.cpp
-@@ -71,6 +71,9 @@ Surface::~Surface()
-
- bool Surface::initialize()
- {
-+ typedef HRESULT (STDAPICALLTYPE *PtrDwmIsCompositionEnabled)(BOOL*);
-+ typedef HRESULT (STDAPICALLTYPE *PtrDwmSetPresentParameters)(HWND, DWM_PRESENT_PARAMETERS *);
-+
- if (!resetSwapChain())
- return false;
-
-@@ -78,17 +81,31 @@ bool Surface::initialize()
- // to minimize the amount of queuing done by DWM between our calls to
- // present and the actual screen.
- if (mWindow && (getComparableOSVersion() >= versionWindowsVista)) {
-- BOOL isComposited;
-- HRESULT result = DwmIsCompositionEnabled(&isComposited);
-- if (SUCCEEDED(result) && isComposited) {
-- DWM_PRESENT_PARAMETERS presentParams;
-- memset(&presentParams, 0, sizeof(presentParams));
-- presentParams.cbSize = sizeof(DWM_PRESENT_PARAMETERS);
-- presentParams.cBuffer = 2;
--
-- result = DwmSetPresentParameters(mWindow, &presentParams);
-- if (FAILED(result))
-- ERR("Unable to set present parameters: 0x%08X", result);
-+ // Resolve dwmapi.dll functions dynamically as the Library is
-+ // not present on Windows XP. Alternatively, /DELAYLOAD could be used.
-+ static PtrDwmIsCompositionEnabled dwmIsCompositionEnabled = 0;
-+ static PtrDwmSetPresentParameters dwmSetPresentParameters = 0;
-+ if (!dwmIsCompositionEnabled) {
-+ if (const HMODULE dwmLibrary = LoadLibraryW(L"dwmapi.dll")) {
-+ dwmIsCompositionEnabled =
-+ (PtrDwmIsCompositionEnabled)GetProcAddress(dwmLibrary, "DwmIsCompositionEnabled");
-+ dwmSetPresentParameters =
-+ (PtrDwmSetPresentParameters)GetProcAddress(dwmLibrary, "DwmSetPresentParameters");
-+ }
-+ }
-+ if (dwmIsCompositionEnabled && dwmSetPresentParameters) {
-+ BOOL isComposited;
-+ HRESULT result = dwmIsCompositionEnabled(&isComposited);
-+ if (SUCCEEDED(result) && isComposited) {
-+ DWM_PRESENT_PARAMETERS presentParams;
-+ memset(&presentParams, 0, sizeof(presentParams));
-+ presentParams.cbSize = sizeof(DWM_PRESENT_PARAMETERS);
-+ presentParams.cBuffer = 2;
-+
-+ result = dwmSetPresentParameters(mWindow, &presentParams);
-+ if (FAILED(result))
-+ ERR("Unable to set present parameters: 0x%08X", result);
-+ }
- }
- }
-
---
-1.8.1.msysgit.1
-