我遇到了一個奇怪的問題,我認爲涉及D3D11CreateDeviceAndSwapChain
我可以創建設備和交換鏈,但是當應用程序退出並且->destroy
被調用到交換鏈,設備和設備上下文時,線程仍然運行。註釋掉該行,應用程序按預期終止。破壞directx設備和交換鏈
featureLevel = D3D_FEATURE_LEVEL_11_0;
result = D3D11CreateDeviceAndSwapChain(NULL, D3D_DRIVER_TYPE_HARDWARE, NULL, 0, &featureLevel, 1, D3D11_SDK_VERSION, &swapChainDesc, &m_swapChain, &m_device, NULL, &m_deviceContext);
if(FAILED(result))
{
#ifdef _DEBUG
log(logDEBUG) << "Error at D3D11CreateDeviceAndSwapChain";
#endif
return false;
}
return true;
和破壞:
if(m_swapChain)
{
m_swapChain->SetFullscreenState(false, NULL);
}
if(m_device)
{
m_device->Release();
}
if(m_deviceContext)
{
m_deviceContext->Release();
}
if(m_swapChain)
{
m_swapChain->Release();
}
我相當有信心,這個問題從該來了,但我不是100%肯定。通過代碼,我看到每個發佈都被正確調用。 (如果第一個塊被註釋掉,應用程序將正常關閉。)
感謝您對此問題的任何見解。
感謝您的回答,但問題依然存在。 – akuseru