デバイスとスワップ チェーンを作成できると思われる奇妙な問題が発生しD3D11CreateDeviceAndSwapChain
ていますが、アプリケーションが終了->destroy
し、スワップ チェーン、デバイス、およびデバイス コンテキストで呼び出されると、スレッドがまだ実行されています。この行をコメントアウトすると、アプリケーションは期待どおりに終了します。
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% 確実ではありません。コードをステップ実行すると、各リリースが正しく呼び出されることがわかります。(最初のブロックがコメントアウトされている場合、アプリケーションは正しく終了します。)
この問題に関する洞察に感謝します。