| 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
 | 
| 
 |