Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(354)

Unified Diff: webrtc/modules/desktop_capture/win/window_capture_utils.cc

Issue 1199073002: Enable cropping window capturing for Win7 when Aero is disabled. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/desktop_capture/win/window_capture_utils.cc
diff --git a/webrtc/modules/desktop_capture/win/window_capture_utils.cc b/webrtc/modules/desktop_capture/win/window_capture_utils.cc
index bfe7363f32d8c69b64a59e2388b47cb1a6c08ef5..bfa064d4d69ebca720ef589ba02277438b3ccf25 100644
--- a/webrtc/modules/desktop_capture/win/window_capture_utils.cc
+++ b/webrtc/modules/desktop_capture/win/window_capture_utils.cc
@@ -10,6 +10,8 @@
#include "webrtc/modules/desktop_capture/win/window_capture_utils.h"
+#include "webrtc/base/criticalsection.h"
+
namespace webrtc {
bool
@@ -43,4 +45,29 @@ GetCroppedWindowRect(HWND window,
return true;
}
+bool IsAeroEnabled() {
+ typedef HRESULT (WINAPI *DwmIsCompositionEnabledFunc)(BOOL* enabled);
+
+ static rtc::GlobalLockPod lock;
Sergey Ulanov 2015/07/14 20:15:50 I'm not sure it's safe to have this static inside
jiayl2 2015/07/14 22:25:32 Removed
+ rtc::GlobalLockScope lock_scope(&lock);
+
+ static bool initialized = false;
+ static BOOL aero_enabled = FALSE;
+
+ if (!initialized) {
+ // Try to load dwmapi.dll dynamically since it is not available on XP.
+ HMODULE dwmapi_library = LoadLibrary(L"dwmapi.dll");
+ if (dwmapi_library) {
+ DwmIsCompositionEnabledFunc is_composition_enabled_func =
+ reinterpret_cast<DwmIsCompositionEnabledFunc>(
+ GetProcAddress(dwmapi_library, "DwmIsCompositionEnabled"));
+ is_composition_enabled_func(&aero_enabled);
Sergey Ulanov 2015/07/14 20:15:50 You can store is_composition_enabled_func between
jiayl2 2015/07/14 22:25:32 The static method way doesn't work since it doesn'
+ FreeLibrary(dwmapi_library);
+ }
+ initialized = true;
+ }
+
+ return aero_enabled != FALSE;
+}
+
} // namespace webrtc
« no previous file with comments | « webrtc/modules/desktop_capture/win/window_capture_utils.h ('k') | webrtc/modules/desktop_capture/window_capturer_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698