| Index: webrtc/modules/desktop_capture/screen_capturer_win.cc
|
| diff --git a/webrtc/modules/desktop_capture/screen_capturer_win.cc b/webrtc/modules/desktop_capture/screen_capturer_win.cc
|
| index 22113a870df4fa4c54a140801aecf8c694206ecb..7e7fbaa38fd34b67055aef9f6d10db42d6833fca 100644
|
| --- a/webrtc/modules/desktop_capture/screen_capturer_win.cc
|
| +++ b/webrtc/modules/desktop_capture/screen_capturer_win.cc
|
| @@ -14,6 +14,7 @@
|
| #include <utility>
|
|
|
| #include "webrtc/modules/desktop_capture/desktop_capture_options.h"
|
| +#include "webrtc/modules/desktop_capture/win/screen_capturer_win_directx.h"
|
| #include "webrtc/modules/desktop_capture/win/screen_capturer_win_gdi.h"
|
| #include "webrtc/modules/desktop_capture/win/screen_capturer_win_magnifier.h"
|
|
|
| @@ -21,13 +22,18 @@ namespace webrtc {
|
|
|
| // static
|
| ScreenCapturer* ScreenCapturer::Create(const DesktopCaptureOptions& options) {
|
| - std::unique_ptr<ScreenCapturer> gdi_capturer(
|
| - new ScreenCapturerWinGdi(options));
|
| + std::unique_ptr<ScreenCapturer> capturer;
|
| + if (options.allow_directx_capturer() &&
|
| + ScreenCapturerWinDirectx::Initialize()) {
|
| + capturer.reset(new ScreenCapturerWinDirectx(options));
|
| + } else {
|
| + capturer.reset(new ScreenCapturerWinGdi(options));
|
| + }
|
|
|
| if (options.allow_use_magnification_api())
|
| - return new ScreenCapturerWinMagnifier(std::move(gdi_capturer));
|
| + return new ScreenCapturerWinMagnifier(std::move(capturer));
|
|
|
| - return gdi_capturer.release();
|
| + return capturer.release();
|
| }
|
|
|
| } // namespace webrtc
|
|
|