Revert "Add ability to load CreateDirect3DDeviceFromDXGIDevice from d3d11.dll"
This reverts commit 23f60ebe015cdefd017639d3eb826bf058cae141.
Reason for revert: breaks downstream: create_direct3d_device.h(14,10): fatal error: 'windows.graphics.capture.interop.h' file not found
Original change's description:
> Add ability to load CreateDirect3DDeviceFromDXGIDevice from d3d11.dll
>
> Creating a Direct3D11Device from a DXGIDevice is necessary for the new
> WGC based window capturer. However, the
> CreateDirect3DDeviceFromDXGIDevice API is not available on all
> versions of Windows, which means we have to load this function from
> d3d11.dll at runtime.
>
> You can see how this function will be used in this CL:
> 196624: Finish implementing WGC Window Capturer and add unit tests. |
> https://webrtc-review.googlesource.com/c/src/+/196624
>
> I also ensure we don't leak HSTRINGs in GetActivationFactory and fix
> up some includes in ScopedComInitializer.
>
> Bug: webrtc:9273
> Change-Id: Ida240b2c0f637d70ec405de7d8f59f0c12aee1f1
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196622
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Commit-Queue: Austin Orion <auorion@microsoft.com>
> Cr-Commit-Position: refs/heads/master@{#32984}
TBR=mbonadei@webrtc.org,tommi@webrtc.org,sergeyu@chromium.org,auorion@microsoft.com
Change-Id: If48172db15ff09a10bd32e762ee2c952dc9d9337
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9273
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/202023
Reviewed-by: Alex Loiko <aleloi@google.com>
Commit-Queue: Alex Loiko <aleloi@google.com>
Cr-Commit-Position: refs/heads/master@{#32992}
diff --git a/rtc_base/BUILD.gn b/rtc_base/BUILD.gn
index 7181c23..3448504 100644
--- a/rtc_base/BUILD.gn
+++ b/rtc_base/BUILD.gn
@@ -126,8 +126,6 @@
if (is_win) {
sources += [
- "win/create_direct3d_device.cc",
- "win/create_direct3d_device.h",
"win/get_activation_factory.cc",
"win/get_activation_factory.h",
"win/hstring.cc",
diff --git a/rtc_base/win/create_direct3d_device.cc b/rtc_base/win/create_direct3d_device.cc
deleted file mode 100644
index 02fe340..0000000
--- a/rtc_base/win/create_direct3d_device.cc
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (c) 2020 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree. An additional intellectual property rights grant can be found
- * in the file PATENTS. All contributing project authors may
- * be found in the AUTHORS file in the root of the source tree.
- */
-
-#include "rtc_base/win/create_direct3d_device.h"
-
-#include <libloaderapi.h>
-#include <utility>
-
-namespace {
-
-FARPROC LoadD3D11Function(const char* function_name) {
- static HMODULE const handle =
- ::LoadLibraryExW(L"d3d11.dll", nullptr, LOAD_LIBRARY_SEARCH_SYSTEM32);
- return handle ? ::GetProcAddress(handle, function_name) : nullptr;
-}
-
-decltype(&::CreateDirect3D11DeviceFromDXGIDevice)
-GetCreateDirect3D11DeviceFromDXGIDevice() {
- static decltype(&::CreateDirect3D11DeviceFromDXGIDevice) const function =
- reinterpret_cast<decltype(&::CreateDirect3D11DeviceFromDXGIDevice)>(
- LoadD3D11Function("CreateDirect3D11DeviceFromDXGIDevice"));
- return function;
-}
-
-} // namespace
-
-namespace webrtc {
-
-bool ResolveCoreWinRTDirect3DDelayload() {
- return GetCreateDirect3D11DeviceFromDXGIDevice();
-}
-
-HRESULT CreateDirect3DDeviceFromDXGIDevice(
- IDXGIDevice* dxgi_device,
- ABI::Windows::Graphics::DirectX::Direct3D11::IDirect3DDevice**
- out_d3d11_device) {
- decltype(&::CreateDirect3D11DeviceFromDXGIDevice) create_d3d11_device_func =
- GetCreateDirect3D11DeviceFromDXGIDevice();
- if (!create_d3d11_device_func)
- return E_FAIL;
-
- Microsoft::WRL::ComPtr<IInspectable> inspectableSurface;
- HRESULT hr = create_d3d11_device_func(dxgi_device, &inspectableSurface);
- if (FAILED(hr))
- return hr;
-
- return inspectableSurface->QueryInterface(IID_PPV_ARGS(out_d3d11_device));
-}
-
-} // namespace webrtc
diff --git a/rtc_base/win/create_direct3d_device.h b/rtc_base/win/create_direct3d_device.h
deleted file mode 100644
index 102f741..0000000
--- a/rtc_base/win/create_direct3d_device.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (c) 2020 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree. An additional intellectual property rights grant can be found
- * in the file PATENTS. All contributing project authors may
- * be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef RTC_BASE_WIN_CREATE_DIRECT3D_DEVICE_H_
-#define RTC_BASE_WIN_CREATE_DIRECT3D_DEVICE_H_
-
-#include <windows.graphics.capture.interop.h>
-#include <windows.graphics.directX.direct3d11.interop.h>
-#include <winerror.h>
-#include <wrl/client.h>
-
-namespace webrtc {
-
-// Callers must check the return value of ResolveCoreWinRTDirect3DDelayload()
-// before using CreateDirect3DDeviceFromDXGIDevice().
-bool ResolveCoreWinRTDirect3DDelayload();
-
-// Allows for the creating of Direct3D Devices from a DXGI device on versions
-// of Windows greater than Win7.
-HRESULT CreateDirect3DDeviceFromDXGIDevice(
- IDXGIDevice* dxgi_device,
- ABI::Windows::Graphics::DirectX::Direct3D11::IDirect3DDevice**
- out_d3d11_device);
-
-} // namespace webrtc
-
-#endif // RTC_BASE_WIN_CREATE_DIRECT3D_DEVICE_H_
diff --git a/rtc_base/win/get_activation_factory.h b/rtc_base/win/get_activation_factory.h
index 08f602f..801f39d 100644
--- a/rtc_base/win/get_activation_factory.h
+++ b/rtc_base/win/get_activation_factory.h
@@ -40,10 +40,8 @@
return hr;
hr = RoGetActivationFactoryProxy(class_id_hstring, IID_PPV_ARGS(factory));
- if (FAILED(hr)) {
- DeleteHstring(class_id_hstring);
+ if (FAILED(hr))
return hr;
- }
return DeleteHstring(class_id_hstring);
}
diff --git a/rtc_base/win/scoped_com_initializer.cc b/rtc_base/win/scoped_com_initializer.cc
index 81079fb..b83ad32 100644
--- a/rtc_base/win/scoped_com_initializer.cc
+++ b/rtc_base/win/scoped_com_initializer.cc
@@ -10,9 +10,6 @@
#include "rtc_base/win/scoped_com_initializer.h"
-#include "rtc_base/checks.h"
-#include "rtc_base/logging.h"
-
namespace webrtc {
ScopedCOMInitializer::ScopedCOMInitializer() {
diff --git a/rtc_base/win/scoped_com_initializer.h b/rtc_base/win/scoped_com_initializer.h
index 2427097..918812f 100644
--- a/rtc_base/win/scoped_com_initializer.h
+++ b/rtc_base/win/scoped_com_initializer.h
@@ -13,6 +13,8 @@
#include <comdef.h>
+#include "rtc_base/logging.h"
+
namespace webrtc {
// Initializes COM in the constructor (STA or MTA), and uninitializes COM in the