webrtc/modules/desktop_capture
Julien Isorce f89110d679 Use PW_RENDERFULLCONTENT to capture occluded windows on Win8.1 and Win10
On Win8.1 and Win10 when the window is occluded the cropping capturer
falls back to the PrintWindow API. But without a special flag it
fails when trying to capture apps that are using DirectComposition.
So just pass this undocumented flag named PW_RENDERFULLCONTENT to fix
the fallback case of the cropping capturer.

Due to new app framing on Win8 and Win10 the shadow of the window
are captured as black like if for the maximize case on Win7. So
just use the utility function webrtc::GetCroppedWindowRect and
remove the local GetWindowDrawableRect helper. The former returns
the same result as the later on Win7 so no real change is made here,
just that we make the WindowCapturerWin compatible with newer Windows.

Bug: webrtc:10734
Change-Id: Idb793ca0691261042569c30410669c4a5ad0c8ec
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144960
Commit-Queue: Julien Isorce <julien.isorce@chromium.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28570}
2019-07-15 18:58:26 +00:00
..
linux Format almost everything. 2019-07-08 13:45:15 +00:00
mac Format almost everything. 2019-07-08 13:45:15 +00:00
win Do not use hungarian notation for DwmGetWindowAttribute's params 2019-07-10 10:48:07 +00:00
blank_detector_desktop_capturer_wrapper_unittest.cc Fully qualify googletest symbols. 2019-04-09 17:18:20 +00:00
blank_detector_desktop_capturer_wrapper.cc Format almost everything. 2019-07-08 13:45:15 +00:00
blank_detector_desktop_capturer_wrapper.h Revert "Desktop capturer: Add OnDisplayChanged callback" 2018-12-22 00:10:40 +00:00
BUILD.gn Reland "Link fewer X11-related libraries" 2019-06-11 07:34:49 +00:00
capture_result_desktop_capturer_wrapper.cc Set callback_ member at start of desktop capturer Start() 2019-01-11 21:16:22 +00:00
capture_result_desktop_capturer_wrapper.h [Cleanup] Add missing #include. Remove useless ones. IWYU part 2. 2018-11-28 18:25:07 +00:00
cropped_desktop_frame_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
cropped_desktop_frame.cc Format almost everything. 2019-07-08 13:45:15 +00:00
cropped_desktop_frame.h [Cleanup] Add missing #include. Remove useless ones. IWYU part 2. 2018-11-28 18:25:07 +00:00
cropping_window_capturer_win.cc Format almost everything. 2019-07-08 13:45:15 +00:00
cropping_window_capturer.cc Format almost everything. 2019-07-08 13:45:15 +00:00
cropping_window_capturer.h Revert "Desktop capturer: Add OnDisplayChanged callback" 2018-12-22 00:10:40 +00:00
DEPS Can use the given IOSurfaceRef to reach higher capture framerate on Mac 2018-04-10 00:37:59 +00:00
desktop_and_cursor_composer_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
desktop_and_cursor_composer.cc Format almost everything. 2019-07-08 13:45:15 +00:00
desktop_and_cursor_composer.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
desktop_capture_options.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
desktop_capture_options.h Remove rtc_base/scoped_ref_ptr.h. 2019-01-25 20:29:58 +00:00
desktop_capture_types.h Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
desktop_capturer_differ_wrapper_unittest.cc Fully qualify googletest symbols. 2019-04-09 17:18:20 +00:00
desktop_capturer_differ_wrapper.cc Format almost everything. 2019-07-08 13:45:15 +00:00
desktop_capturer_differ_wrapper.h Revert "Desktop capturer: Add OnDisplayChanged callback" 2018-12-22 00:10:40 +00:00
desktop_capturer_wrapper.cc Implement DesktopCapturerWrapper and CaptureResultDesktopCapturerWrapper 2017-09-15 18:56:26 +00:00
desktop_capturer_wrapper.h [Cleanup] Add missing #include. Remove useless ones. IWYU part 2. 2018-11-28 18:25:07 +00:00
desktop_capturer.cc Format almost everything. 2019-07-08 13:45:15 +00:00
desktop_capturer.h Revert "Desktop capturer: Add OnDisplayChanged callback" 2018-12-22 00:10:40 +00:00
desktop_frame_generator.cc Format almost everything. 2019-07-08 13:45:15 +00:00
desktop_frame_generator.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
desktop_frame_rotation_unittest.cc [Cleanup] Add missing #include. Remove useless ones. IWYU part 2. 2018-11-28 18:25:07 +00:00
desktop_frame_rotation.cc [Cleanup] Add missing #include. Remove useless ones. IWYU part 2. 2018-11-28 18:25:07 +00:00
desktop_frame_rotation.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
desktop_frame_win.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
desktop_frame_win.h Format almost everything. 2019-07-08 13:45:15 +00:00
desktop_frame.cc Format almost everything. 2019-07-08 13:45:15 +00:00
desktop_frame.h Format almost everything. 2019-07-08 13:45:15 +00:00
desktop_geometry_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
desktop_geometry.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
desktop_geometry.h webrtc: Remove semicolons. 2019-02-20 16:02:59 +00:00
desktop_region_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
desktop_region.cc Format almost everything. 2019-07-08 13:45:15 +00:00
desktop_region.h Format almost everything. 2019-07-08 13:45:15 +00:00
differ_block_unittest.cc [Cleanup] Add missing #include. Remove useless ones. IWYU part 2. 2018-11-28 18:25:07 +00:00
differ_block.cc Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
differ_block.h Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
differ_vector_sse2.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
differ_vector_sse2.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
fake_desktop_capturer.cc [Cleanup] Add missing #include. Remove useless ones. IWYU part 2. 2018-11-28 18:25:07 +00:00
fake_desktop_capturer.h [Cleanup] Add missing #include. Remove useless ones. IWYU part 2. 2018-11-28 18:25:07 +00:00
fallback_desktop_capturer_wrapper_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
fallback_desktop_capturer_wrapper.cc Format almost everything. 2019-07-08 13:45:15 +00:00
fallback_desktop_capturer_wrapper.h Revert "Desktop capturer: Add OnDisplayChanged callback" 2018-12-22 00:10:40 +00:00
mock_desktop_capturer_callback.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
mock_desktop_capturer_callback.h Format almost everything. 2019-07-08 13:45:15 +00:00
mouse_cursor_monitor_linux.cc [Cleanup] Add missing #include. Remove useless ones. IWYU part 2. 2018-11-28 18:25:07 +00:00
mouse_cursor_monitor_mac.mm Remove rtc_base/scoped_ref_ptr.h. 2019-01-25 20:29:58 +00:00
mouse_cursor_monitor_null.cc Format almost everything. 2019-07-08 13:45:15 +00:00
mouse_cursor_monitor_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
mouse_cursor_monitor_win.cc Format almost everything. 2019-07-08 13:45:15 +00:00
mouse_cursor_monitor.h Export symbols needed by the Chromium component build (part 8). 2019-04-02 10:13:36 +00:00
mouse_cursor.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
mouse_cursor.h Export symbols needed by the Chromium component build (part 8). 2019-04-02 10:13:36 +00:00
OWNERS desktopCapture: add braveyao@webrtc.org as OWNER 2018-09-05 17:42:26 +00:00
resolution_tracker.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
resolution_tracker.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
rgba_color_unittest.cc [Cleanup] Add missing #include. Remove useless ones. IWYU part 2. 2018-11-28 18:25:07 +00:00
rgba_color.cc Format almost everything. 2019-07-08 13:45:15 +00:00
rgba_color.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
screen_capture_frame_queue.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
screen_capturer_darwin.mm Can use the given IOSurfaceRef to reach higher capture framerate on Mac 2018-04-10 00:37:59 +00:00
screen_capturer_helper_unittest.cc Fully qualify googletest symbols. 2019-04-09 17:18:20 +00:00
screen_capturer_helper.cc [Cleanup] Add missing #include. Remove useless ones. IWYU part 2. 2018-11-28 18:25:07 +00:00
screen_capturer_helper.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
screen_capturer_integration_test.cc Fully qualify googletest symbols. 2019-04-09 17:18:20 +00:00
screen_capturer_linux.cc [Cleanup] Add missing #include. Remove useless ones. IWYU part 2. 2018-11-28 18:25:07 +00:00
screen_capturer_mac_unittest.cc Fully qualify googletest symbols. 2019-04-09 17:18:20 +00:00
screen_capturer_null.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
screen_capturer_unittest.cc Fully qualify googletest symbols. 2019-04-09 17:18:20 +00:00
screen_capturer_win.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
screen_drawer_linux.cc Format almost everything. 2019-07-08 13:45:15 +00:00
screen_drawer_lock_posix.cc Stop using LOG macros in favor of RTC_ prefixed macros. 2017-11-09 11:56:32 +00:00
screen_drawer_lock_posix.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
screen_drawer_mac.cc Use absl::make_unique and absl::WrapUnique directly 2018-07-05 10:59:49 +00:00
screen_drawer_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
screen_drawer_win.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
screen_drawer.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
screen_drawer.h [Cleanup] Add missing #include. Remove useless ones. IWYU part 2. 2018-11-28 18:25:07 +00:00
shared_desktop_frame.cc [Cleanup] Add missing #include. Remove useless ones. IWYU part 2. 2018-11-28 18:25:07 +00:00
shared_desktop_frame.h Remove rtc_base/scoped_ref_ptr.h. 2019-01-25 20:29:58 +00:00
shared_memory.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
shared_memory.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
test_utils_unittest.cc [Cleanup] Add missing #include. Remove useless ones. IWYU part 2. 2018-11-28 18:25:07 +00:00
test_utils.cc [Cleanup] Add missing #include. Remove useless ones. IWYU part 2. 2018-11-28 18:25:07 +00:00
test_utils.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
window_capturer_linux.cc [Cleanup] Add missing #include. Remove useless ones. IWYU part 2. 2018-11-28 18:25:07 +00:00
window_capturer_mac.mm Avoid a frame copy in WindowCapturerMac 2019-04-19 05:05:50 +00:00
window_capturer_null.cc (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
window_capturer_unittest.cc Fully qualify googletest symbols. 2019-04-09 17:18:20 +00:00
window_capturer_win.cc Use PW_RENDERFULLCONTENT to capture occluded windows on Win8.1 and Win10 2019-07-15 18:58:26 +00:00
window_finder_mac.h Remove rtc_base/scoped_ref_ptr.h. 2019-01-25 20:29:58 +00:00
window_finder_mac.mm Use absl::make_unique and absl::WrapUnique directly 2018-07-05 10:59:49 +00:00
window_finder_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
window_finder_win.cc Use absl::make_unique and absl::WrapUnique directly 2018-07-05 10:59:49 +00:00
window_finder_win.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
window_finder.cc [Window Capturer] Implement scaling in GetWindowBounds() 2017-11-07 01:49:35 +00:00
window_finder.h Remove rtc_base/scoped_ref_ptr.h. 2019-01-25 20:29:58 +00:00