diff options
author | Jere Tuliniemi <jere.tuliniemi@qt.io> | 2020-03-18 02:56:17 +0200 |
---|---|---|
committer | Jere Tuliniemi <jere.tuliniemi@qt.io> | 2020-03-23 11:25:17 +0200 |
commit | 8f912c9df0057be3b9783cc62e8a951a2ff60209 (patch) | |
tree | 6587e2e67ef571101d37f2a988f80385cdfaf015 | |
parent | 941250a6c2e5868abbec44d3cabff66daec638fb (diff) |
Release layer cache texture when layer size changes
Fixes dynamic resize for effects.
Task-number: QT3DS-4085
Change-Id: Ifb52ce367af8b4edc7d03b4ed90980d8e510e662
Reviewed-by: Antti Määttä <antti.maatta@qt.io>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
-rw-r--r-- | src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderData.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderData.cpp b/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderData.cpp index e41a738..0920b38 100644 --- a/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderData.cpp +++ b/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderData.cpp @@ -1890,6 +1890,16 @@ void SLayerRenderData::RunRenderPass(TRenderRenderableFunction inRenderFn, NVRenderTexture2D *theLayerColorTexture = m_LayerTexture; NVRenderTexture2D *theLayerDepthTexture = m_LayerDepthTexture; + if (m_LayerCachedTexture) { + STextureDetails details(theLayerColorTexture->GetTextureDetails()); + STextureDetails cachedDetails(m_LayerCachedTexture->GetTextureDetails()); + if (cachedDetails.m_Width != details.m_Width + || cachedDetails.m_Height != details.m_Height) { + theResourceManager.Release(*m_LayerCachedTexture); + m_LayerCachedTexture = nullptr; + } + } + if (!m_LayerCachedTexture) { STextureDetails details(theLayerColorTexture->GetTextureDetails()); QT3DSU32 finalWidth = ITextRenderer::NextMultipleOf4((QT3DSU32)(details.m_Width)); |