mirror of
https://github.com/RetroDECK/Duckstation.git
synced 2024-11-22 22:05:38 +00:00
Misc: Remove last remnants of UWP
This commit is contained in:
parent
438f085cfe
commit
97ff2bf000
|
@ -204,11 +204,7 @@ bool D3D11HostDisplay::CreateRenderDevice(const WindowInfo& wi)
|
||||||
create_flags |= D3D11_CREATE_DEVICE_DEBUG;
|
create_flags |= D3D11_CREATE_DEVICE_DEBUG;
|
||||||
|
|
||||||
ComPtr<IDXGIFactory> temp_dxgi_factory;
|
ComPtr<IDXGIFactory> temp_dxgi_factory;
|
||||||
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
|
|
||||||
HRESULT hr = CreateDXGIFactory(IID_PPV_ARGS(temp_dxgi_factory.GetAddressOf()));
|
HRESULT hr = CreateDXGIFactory(IID_PPV_ARGS(temp_dxgi_factory.GetAddressOf()));
|
||||||
#else
|
|
||||||
HRESULT hr = CreateDXGIFactory2(0, IID_PPV_ARGS(temp_dxgi_factory.GetAddressOf()));
|
|
||||||
#endif
|
|
||||||
if (FAILED(hr))
|
if (FAILED(hr))
|
||||||
{
|
{
|
||||||
Log_ErrorPrintf("Failed to create DXGI factory: 0x%08X", hr);
|
Log_ErrorPrintf("Failed to create DXGI factory: 0x%08X", hr);
|
||||||
|
@ -342,7 +338,6 @@ bool D3D11HostDisplay::CreateSwapChain(const DXGI_MODE_DESC* fullscreen_mode)
|
||||||
{
|
{
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
|
|
||||||
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
|
|
||||||
if (m_window_info.type != WindowInfo::Type::Win32)
|
if (m_window_info.type != WindowInfo::Type::Win32)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
@ -405,42 +400,6 @@ bool D3D11HostDisplay::CreateSwapChain(const DXGI_MODE_DESC* fullscreen_mode)
|
||||||
if (FAILED(hr))
|
if (FAILED(hr))
|
||||||
Log_WarningPrintf("MakeWindowAssociation() to disable ALT+ENTER failed");
|
Log_WarningPrintf("MakeWindowAssociation() to disable ALT+ENTER failed");
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
if (m_window_info.type != WindowInfo::Type::WinRT)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
ComPtr<IDXGIFactory2> factory2;
|
|
||||||
hr = m_dxgi_factory.As(&factory2);
|
|
||||||
if (FAILED(hr))
|
|
||||||
{
|
|
||||||
Log_ErrorPrintf("Failed to get DXGI factory: %08X", hr);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
DXGI_SWAP_CHAIN_DESC1 swap_chain_desc = {};
|
|
||||||
swap_chain_desc.Width = m_window_info.surface_width;
|
|
||||||
swap_chain_desc.Height = m_window_info.surface_height;
|
|
||||||
swap_chain_desc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
|
|
||||||
swap_chain_desc.SampleDesc.Count = 1;
|
|
||||||
swap_chain_desc.BufferCount = 3;
|
|
||||||
swap_chain_desc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
|
|
||||||
swap_chain_desc.SwapEffect = m_using_flip_model_swap_chain ? DXGI_SWAP_EFFECT_FLIP_DISCARD : DXGI_SWAP_EFFECT_DISCARD;
|
|
||||||
|
|
||||||
m_using_allow_tearing = (m_allow_tearing_supported && m_using_flip_model_swap_chain && !fullscreen_mode);
|
|
||||||
if (m_using_allow_tearing)
|
|
||||||
swap_chain_desc.Flags |= DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING;
|
|
||||||
|
|
||||||
ComPtr<IDXGISwapChain1> swap_chain1;
|
|
||||||
hr = factory2->CreateSwapChainForCoreWindow(m_device.Get(), static_cast<IUnknown*>(m_window_info.window_handle),
|
|
||||||
&swap_chain_desc, nullptr, swap_chain1.GetAddressOf());
|
|
||||||
if (FAILED(hr))
|
|
||||||
{
|
|
||||||
Log_ErrorPrintf("CreateSwapChainForCoreWindow failed: 0x%08X", hr);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
m_swap_chain = swap_chain1;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return CreateSwapChainRTV();
|
return CreateSwapChainRTV();
|
||||||
}
|
}
|
||||||
|
@ -882,11 +841,7 @@ void D3D11HostDisplay::RenderSoftwareCursor(s32 left, s32 top, s32 width, s32 he
|
||||||
HostDisplay::AdapterAndModeList D3D11HostDisplay::StaticGetAdapterAndModeList()
|
HostDisplay::AdapterAndModeList D3D11HostDisplay::StaticGetAdapterAndModeList()
|
||||||
{
|
{
|
||||||
ComPtr<IDXGIFactory> dxgi_factory;
|
ComPtr<IDXGIFactory> dxgi_factory;
|
||||||
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
|
|
||||||
HRESULT hr = CreateDXGIFactory(IID_PPV_ARGS(dxgi_factory.GetAddressOf()));
|
HRESULT hr = CreateDXGIFactory(IID_PPV_ARGS(dxgi_factory.GetAddressOf()));
|
||||||
#else
|
|
||||||
HRESULT hr = CreateDXGIFactory2(0, IID_PPV_ARGS(dxgi_factory.GetAddressOf()));
|
|
||||||
#endif
|
|
||||||
if (FAILED(hr))
|
if (FAILED(hr))
|
||||||
return {};
|
return {};
|
||||||
|
|
||||||
|
|
|
@ -145,12 +145,7 @@ void D3D12HostDisplay::SetVSync(bool enabled)
|
||||||
bool D3D12HostDisplay::CreateRenderDevice(const WindowInfo& wi)
|
bool D3D12HostDisplay::CreateRenderDevice(const WindowInfo& wi)
|
||||||
{
|
{
|
||||||
ComPtr<IDXGIFactory> temp_dxgi_factory;
|
ComPtr<IDXGIFactory> temp_dxgi_factory;
|
||||||
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
|
|
||||||
HRESULT hr = CreateDXGIFactory(IID_PPV_ARGS(temp_dxgi_factory.GetAddressOf()));
|
HRESULT hr = CreateDXGIFactory(IID_PPV_ARGS(temp_dxgi_factory.GetAddressOf()));
|
||||||
#else
|
|
||||||
HRESULT hr = CreateDXGIFactory2(0, IID_PPV_ARGS(temp_dxgi_factory.GetAddressOf()));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (FAILED(hr))
|
if (FAILED(hr))
|
||||||
{
|
{
|
||||||
Log_ErrorPrintf("Failed to create DXGI factory: 0x%08X", hr);
|
Log_ErrorPrintf("Failed to create DXGI factory: 0x%08X", hr);
|
||||||
|
@ -235,7 +230,6 @@ bool D3D12HostDisplay::CreateSwapChain(const DXGI_MODE_DESC* fullscreen_mode)
|
||||||
{
|
{
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
|
|
||||||
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
|
|
||||||
if (m_window_info.type != WindowInfo::Type::Win32)
|
if (m_window_info.type != WindowInfo::Type::Win32)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
@ -281,43 +275,6 @@ bool D3D12HostDisplay::CreateSwapChain(const DXGI_MODE_DESC* fullscreen_mode)
|
||||||
hr = m_dxgi_factory->MakeWindowAssociation(swap_chain_desc.OutputWindow, DXGI_MWA_NO_WINDOW_CHANGES);
|
hr = m_dxgi_factory->MakeWindowAssociation(swap_chain_desc.OutputWindow, DXGI_MWA_NO_WINDOW_CHANGES);
|
||||||
if (FAILED(hr))
|
if (FAILED(hr))
|
||||||
Log_WarningPrintf("MakeWindowAssociation() to disable ALT+ENTER failed");
|
Log_WarningPrintf("MakeWindowAssociation() to disable ALT+ENTER failed");
|
||||||
#else
|
|
||||||
if (m_window_info.type != WindowInfo::Type::WinRT)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
ComPtr<IDXGIFactory2> factory2;
|
|
||||||
hr = m_dxgi_factory.As(&factory2);
|
|
||||||
if (FAILED(hr))
|
|
||||||
{
|
|
||||||
Log_ErrorPrintf("Failed to get DXGI factory: %08X", hr);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
DXGI_SWAP_CHAIN_DESC1 swap_chain_desc = {};
|
|
||||||
swap_chain_desc.Width = m_window_info.surface_width;
|
|
||||||
swap_chain_desc.Height = m_window_info.surface_height;
|
|
||||||
swap_chain_desc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
|
|
||||||
swap_chain_desc.SampleDesc.Count = 1;
|
|
||||||
swap_chain_desc.BufferCount = 3;
|
|
||||||
swap_chain_desc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
|
|
||||||
swap_chain_desc.SwapEffect = DXGI_SWAP_EFFECT_FLIP_DISCARD;
|
|
||||||
|
|
||||||
m_using_allow_tearing = (m_allow_tearing_supported && !fullscreen_mode);
|
|
||||||
if (m_using_allow_tearing)
|
|
||||||
swap_chain_desc.Flags |= DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING;
|
|
||||||
|
|
||||||
ComPtr<IDXGISwapChain1> swap_chain1;
|
|
||||||
hr = factory2->CreateSwapChainForCoreWindow(g_d3d12_context->GetCommandQueue(),
|
|
||||||
static_cast<IUnknown*>(m_window_info.window_handle), &swap_chain_desc,
|
|
||||||
nullptr, swap_chain1.GetAddressOf());
|
|
||||||
if (FAILED(hr))
|
|
||||||
{
|
|
||||||
Log_ErrorPrintf("CreateSwapChainForCoreWindow failed: 0x%08X", hr);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
m_swap_chain = swap_chain1;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return CreateSwapChainRTV();
|
return CreateSwapChainRTV();
|
||||||
}
|
}
|
||||||
|
@ -794,11 +751,7 @@ void D3D12HostDisplay::RenderSoftwareCursor(ID3D12GraphicsCommandList* cmdlist,
|
||||||
HostDisplay::AdapterAndModeList D3D12HostDisplay::StaticGetAdapterAndModeList()
|
HostDisplay::AdapterAndModeList D3D12HostDisplay::StaticGetAdapterAndModeList()
|
||||||
{
|
{
|
||||||
ComPtr<IDXGIFactory> dxgi_factory;
|
ComPtr<IDXGIFactory> dxgi_factory;
|
||||||
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
|
|
||||||
HRESULT hr = CreateDXGIFactory(IID_PPV_ARGS(dxgi_factory.GetAddressOf()));
|
HRESULT hr = CreateDXGIFactory(IID_PPV_ARGS(dxgi_factory.GetAddressOf()));
|
||||||
#else
|
|
||||||
HRESULT hr = CreateDXGIFactory2(0, IID_PPV_ARGS(dxgi_factory.GetAddressOf()));
|
|
||||||
#endif
|
|
||||||
if (FAILED(hr))
|
if (FAILED(hr))
|
||||||
return {};
|
return {};
|
||||||
|
|
||||||
|
|
|
@ -43,17 +43,13 @@ bool XAudio2AudioStream::OpenDevice(u32 latency_ms)
|
||||||
{
|
{
|
||||||
DebugAssert(!IsOpen());
|
DebugAssert(!IsOpen());
|
||||||
|
|
||||||
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
|
|
||||||
m_xaudio2_library = LoadLibraryW(XAUDIO2_DLL_W);
|
m_xaudio2_library = LoadLibraryW(XAUDIO2_DLL_W);
|
||||||
if (!m_xaudio2_library)
|
if (!m_xaudio2_library)
|
||||||
{
|
{
|
||||||
Log_ErrorPrintf("Failed to load '%s', make sure you're using Windows 10", XAUDIO2_DLL_A);
|
Log_ErrorPrintf("Failed to load '%s', make sure you're using Windows 10", XAUDIO2_DLL_A);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
HRESULT hr;
|
|
||||||
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
|
|
||||||
using PFNXAUDIO2CREATE =
|
using PFNXAUDIO2CREATE =
|
||||||
HRESULT(STDAPICALLTYPE*)(IXAudio2 * *ppXAudio2, UINT32 Flags, XAUDIO2_PROCESSOR XAudio2Processor);
|
HRESULT(STDAPICALLTYPE*)(IXAudio2 * *ppXAudio2, UINT32 Flags, XAUDIO2_PROCESSOR XAudio2Processor);
|
||||||
PFNXAUDIO2CREATE xaudio2_create =
|
PFNXAUDIO2CREATE xaudio2_create =
|
||||||
|
@ -61,7 +57,7 @@ bool XAudio2AudioStream::OpenDevice(u32 latency_ms)
|
||||||
if (!xaudio2_create)
|
if (!xaudio2_create)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
hr = CoInitializeEx(nullptr, COINIT_MULTITHREADED);
|
HRESULT hr = CoInitializeEx(nullptr, COINIT_MULTITHREADED);
|
||||||
m_com_initialized_by_us = SUCCEEDED(hr);
|
m_com_initialized_by_us = SUCCEEDED(hr);
|
||||||
if (FAILED(hr) && hr != RPC_E_CHANGED_MODE && hr != S_FALSE)
|
if (FAILED(hr) && hr != RPC_E_CHANGED_MODE && hr != S_FALSE)
|
||||||
{
|
{
|
||||||
|
@ -70,9 +66,6 @@ bool XAudio2AudioStream::OpenDevice(u32 latency_ms)
|
||||||
}
|
}
|
||||||
|
|
||||||
hr = xaudio2_create(m_xaudio.ReleaseAndGetAddressOf(), 0, XAUDIO2_DEFAULT_PROCESSOR);
|
hr = xaudio2_create(m_xaudio.ReleaseAndGetAddressOf(), 0, XAUDIO2_DEFAULT_PROCESSOR);
|
||||||
#else
|
|
||||||
hr = XAudio2Create(m_xaudio.ReleaseAndGetAddressOf(), 0, XAUDIO2_DEFAULT_PROCESSOR);
|
|
||||||
#endif
|
|
||||||
if (FAILED(hr))
|
if (FAILED(hr))
|
||||||
{
|
{
|
||||||
Log_ErrorPrintf("XAudio2Create() failed: %08X", hr);
|
Log_ErrorPrintf("XAudio2Create() failed: %08X", hr);
|
||||||
|
|
|
@ -51,8 +51,6 @@ private:
|
||||||
u32 m_current_buffer = 0;
|
u32 m_current_buffer = 0;
|
||||||
bool m_buffer_enqueued = false;
|
bool m_buffer_enqueued = false;
|
||||||
|
|
||||||
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
|
|
||||||
HMODULE m_xaudio2_library = {};
|
HMODULE m_xaudio2_library = {};
|
||||||
bool m_com_initialized_by_us = false;
|
bool m_com_initialized_by_us = false;
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -82,7 +82,6 @@ XInputSource::~XInputSource() = default;
|
||||||
|
|
||||||
bool XInputSource::Initialize(SettingsInterface& si, std::unique_lock<std::mutex>& settings_lock)
|
bool XInputSource::Initialize(SettingsInterface& si, std::unique_lock<std::mutex>& settings_lock)
|
||||||
{
|
{
|
||||||
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
|
|
||||||
// xinput1_3.dll is flawed and obsolete, but it's also commonly used by wrappers.
|
// xinput1_3.dll is flawed and obsolete, but it's also commonly used by wrappers.
|
||||||
// For this reason, try to load it *only* from the application directory, and not system32.
|
// For this reason, try to load it *only* from the application directory, and not system32.
|
||||||
m_xinput_module = LoadLibraryExW(L"xinput1_3", nullptr, LOAD_LIBRARY_SEARCH_APPLICATION_DIR);
|
m_xinput_module = LoadLibraryExW(L"xinput1_3", nullptr, LOAD_LIBRARY_SEARCH_APPLICATION_DIR);
|
||||||
|
@ -109,12 +108,7 @@ bool XInputSource::Initialize(SettingsInterface& si, std::unique_lock<std::mutex
|
||||||
reinterpret_cast<decltype(m_xinput_set_state)>(GetProcAddress(m_xinput_module, "XInputSetState"));
|
reinterpret_cast<decltype(m_xinput_set_state)>(GetProcAddress(m_xinput_module, "XInputSetState"));
|
||||||
m_xinput_get_capabilities =
|
m_xinput_get_capabilities =
|
||||||
reinterpret_cast<decltype(m_xinput_get_capabilities)>(GetProcAddress(m_xinput_module, "XInputGetCapabilities"));
|
reinterpret_cast<decltype(m_xinput_get_capabilities)>(GetProcAddress(m_xinput_module, "XInputGetCapabilities"));
|
||||||
#else
|
|
||||||
m_xinput_get_state = XInputGetState;
|
|
||||||
m_xinput_set_state = XInputSetState;
|
|
||||||
m_xinput_get_capabilities = XInputGetCapabilities;
|
|
||||||
m_xinput_get_extended = nullptr;
|
|
||||||
#endif
|
|
||||||
if (!m_xinput_get_state || !m_xinput_set_state || !m_xinput_get_capabilities)
|
if (!m_xinput_get_state || !m_xinput_set_state || !m_xinput_get_capabilities)
|
||||||
{
|
{
|
||||||
Log_ErrorPrintf("Failed to get XInput function pointers.");
|
Log_ErrorPrintf("Failed to get XInput function pointers.");
|
||||||
|
@ -163,13 +157,11 @@ void XInputSource::Shutdown()
|
||||||
HandleControllerDisconnection(i);
|
HandleControllerDisconnection(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
|
|
||||||
if (m_xinput_module)
|
if (m_xinput_module)
|
||||||
{
|
{
|
||||||
FreeLibrary(m_xinput_module);
|
FreeLibrary(m_xinput_module);
|
||||||
m_xinput_module = nullptr;
|
m_xinput_module = nullptr;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
m_xinput_get_state = nullptr;
|
m_xinput_get_state = nullptr;
|
||||||
m_xinput_set_state = nullptr;
|
m_xinput_set_state = nullptr;
|
||||||
|
|
Loading…
Reference in a new issue