@@ -770,20 +770,18 @@ void TrackAdapters(HRESULT result, void** ppFactory, graphics::dx12::ActiveAdapt
770770 if (SUCCEEDED (result))
771771 {
772772 // First see if the created factory can be queried as a 1.1 factory
773- auto * base_factory = reinterpret_cast <IUnknown*>(*ppFactory);
774- IDXGIFactory1ComPtr factory1 = nullptr ;
773+ IDXGIFactory1* factory1 = reinterpret_cast <IDXGIFactory1*>(*ppFactory);
775774
776775 // DXGI 1.1 tracking (default)
777- if (SUCCEEDED (base_factory ->QueryInterface (IID_PPV_ARGS (&factory1))))
776+ if (SUCCEEDED (factory1 ->QueryInterface (__uuidof (IDXGIFactory1), reinterpret_cast < void **> (&factory1))))
778777 {
779778 // Get a fresh enumeration, in case it was previously filled by 1.0 tracking
780779 RemoveDeactivatedAdapters (adapters);
781780
782781 // Enumerate 1.1 adapters and fetch data with GetDesc1()
783- IDXGIAdapter1ComPtr adapter1 = nullptr ;
782+ IDXGIAdapter1* adapter1 = nullptr ;
784783
785- for (UINT adapter_idx = 0 ; SUCCEEDED (factory1->EnumAdapters1 (adapter_idx, &adapter1.GetInterfacePtr ()));
786- ++adapter_idx)
784+ for (UINT adapter_idx = 0 ; SUCCEEDED (factory1->EnumAdapters1 (adapter_idx, &adapter1)); ++adapter_idx)
787785 {
788786 DXGI_ADAPTER_DESC1 dxgi_desc = {};
789787 adapter1->GetDesc1 (&dxgi_desc);
@@ -794,7 +792,7 @@ void TrackAdapters(HRESULT result, void** ppFactory, graphics::dx12::ActiveAdapt
794792 adapter_type = format::AdapterType::kSoftwareAdapter ;
795793 }
796794
797- TrackAdapterDesc (adapter1. GetInterfacePtr () , adapter_idx, dxgi_desc, adapters, adapter_type);
795+ TrackAdapterDesc (adapter1, adapter_idx, dxgi_desc, adapters, adapter_type);
798796 }
799797 }
800798
@@ -804,25 +802,20 @@ void TrackAdapters(HRESULT result, void** ppFactory, graphics::dx12::ActiveAdapt
804802 // Only enumerate 1.0 factory adapters if nothing has been seen yet
805803 if (adapters.empty ())
806804 {
807- IDXGIFactoryComPtr factory = nullptr ;
805+ IDXGIFactory* factory = reinterpret_cast <IDXGIFactory*>(*ppFactory) ;
808806
809- if (SUCCEEDED (base_factory ->QueryInterface (IID_PPV_ARGS (&factory))))
807+ if (SUCCEEDED (factory ->QueryInterface (__uuidof (IDXGIFactory), reinterpret_cast < void **> (&factory))))
810808 {
811809 // Enumerate 1.0 adapters and fetch data with GetDesc()
812- IDXGIAdapterComPtr adapter = nullptr ;
810+ IDXGIAdapter* adapter = nullptr ;
813811
814- for (UINT adapter_idx = 0 ;
815- SUCCEEDED (factory->EnumAdapters (adapter_idx, &adapter.GetInterfacePtr ()));
816- ++adapter_idx)
812+ for (UINT adapter_idx = 0 ; SUCCEEDED (factory->EnumAdapters (adapter_idx, &adapter)); ++adapter_idx)
817813 {
818814 DXGI_ADAPTER_DESC dxgi_desc = {};
819815 adapter->GetDesc (&dxgi_desc);
820816
821- TrackAdapterDesc (adapter.GetInterfacePtr (),
822- adapter_idx,
823- dxgi_desc,
824- adapters,
825- format::AdapterType::kUnknownAdapter );
817+ TrackAdapterDesc (
818+ adapter, adapter_idx, dxgi_desc, adapters, format::AdapterType::kUnknownAdapter );
826819 }
827820 }
828821 else
@@ -949,7 +942,7 @@ bool GetAdapterAndIndexbyLUID(LUID luid,
949942 if (search != adapters.end ())
950943 {
951944 index = search->second .adapter_idx ;
952- adapter_ptr = search->second .adapter . GetInterfacePtr () ;
945+ adapter_ptr = search->second .adapter ;
953946 success = true ;
954947 }
955948 return success;
@@ -979,7 +972,7 @@ IDXGIAdapter* GetAdapterbyIndex(graphics::dx12::ActiveAdapterMap& adapters, int3
979972 {
980973 if (static_cast <int32_t >(adapter.second .adapter_idx ) == index)
981974 {
982- return adapter.second .adapter . GetInterfacePtr () ;
975+ return adapter.second .adapter ;
983976 }
984977 }
985978 return nullptr ;
0 commit comments