Skip to content
Snippets Groups Projects
Commit 40bee9e7 authored by Steve Lhomme's avatar Steve Lhomme
Browse files

qt: don't keep a reference to the IDCompositionTarget

We only need to set the root once.
parent 427bbe3f
No related branches found
No related tags found
1 merge request!5734qt: don't keep a reference to the IDCompositionTarget
Pipeline #492908 passed with stage
in 35 minutes and 43 seconds
......@@ -154,34 +154,37 @@ void CompositorDirectComposition::setup()
assert(m_quickView->rhi()->backend() == QRhi::D3D11 || m_quickView->rhi()->backend() == QRhi::D3D12);
IDCompositionTarget* dcompTarget;
if (rhi->backend() == QRhi::D3D11)
{
#ifdef QRhiD3D11_ACTIVE
m_dcompDevice = static_cast<QRhiD3D11*>(rhiImplementation)->dcompDevice;
m_dcompTarget = static_cast<QD3D11SwapChain*>(rhiSwapChain)->dcompTarget;
m_uiVisual = static_cast<QD3D11SwapChain*>(rhiSwapChain)->dcompVisual;
auto qswapchain = static_cast<QD3D11SwapChain*>(rhiSwapChain);
dcompTarget = qswapchain->dcompTarget;
m_uiVisual = qswapchain->dcompVisual;
#endif
}
else if (rhi->backend() == QRhi::D3D12)
{
#ifdef QRhiD3D12_ACTIVE
m_dcompDevice = static_cast<QRhiD3D12*>(rhiImplementation)->dcompDevice;
m_dcompTarget = static_cast<QD3D12SwapChain*>(rhiSwapChain)->dcompTarget;
m_uiVisual = static_cast<QD3D12SwapChain*>(rhiSwapChain)->dcompVisual;
auto qswapchain = static_cast<QD3D12SwapChain*>(rhiSwapChain);
dcompTarget = qswapchain->dcompTarget;
m_uiVisual = qswapchain->dcompVisual;
#endif
}
else
Q_UNREACHABLE();
assert(m_dcompDevice);
assert(m_dcompTarget);
assert(dcompTarget);
assert(m_uiVisual);
HRESULT res;
res = m_dcompDevice->CreateVisual(&m_rootVisual);
assert(res == S_OK);
res = m_dcompTarget->SetRoot(m_rootVisual.Get());
res = dcompTarget->SetRoot(m_rootVisual.Get());
assert(res == S_OK);
res = m_rootVisual->AddVisual(m_uiVisual, FALSE, NULL);
......
......@@ -81,7 +81,6 @@ private:
std::unique_ptr<QQuickView> m_quickView;
IDCompositionDevice *m_dcompDevice = nullptr;
IDCompositionTarget *m_dcompTarget = nullptr;
Microsoft::WRL::ComPtr<IDCompositionVisual> m_rootVisual;
Microsoft::WRL::ComPtr<IDCompositionVisual> m_videoVisual;
IDCompositionVisual *m_uiVisual = nullptr;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment