diff options
Diffstat (limited to 'src/render/backend/managers_p.h')
-rw-r--r-- | src/render/backend/managers_p.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/render/backend/managers_p.h b/src/render/backend/managers_p.h index 759c16f64..b2dec9cb5 100644 --- a/src/render/backend/managers_p.h +++ b/src/render/backend/managers_p.h @@ -282,6 +282,35 @@ class RenderTargetManager : public Qt3DCore::QResourceManager< { public: RenderTargetManager() {} + + // Called in AspectThread by RenderTarget node functor destroy + void addRenderTargetIdToCleanup(Qt3DCore::QNodeId id) + { + m_renderTargetIdsToCleanup.push_back(id); + } + + // Called in AspectThread by RenderTarget node functor create + void removeRenderTargetToCleanup(Qt3DCore::QNodeId id) + { + m_renderTargetIdsToCleanup.removeAll(id); + } + + // Called by RenderThread in updateGLResources (locked) + QVector<Qt3DCore::QNodeId> takeRenderTargetIdsToCleanup() + { + return std::move(m_renderTargetIdsToCleanup); + } + +#ifdef QT_BUILD_INTERNAL + // For unit testing purposes only + QVector<Qt3DCore::QNodeId> renderTargetIdsToCleanup() const + { + return m_renderTargetIdsToCleanup; + } +#endif + +private: + QVector<Qt3DCore::QNodeId> m_renderTargetIdsToCleanup; }; class RenderPassManager : public Qt3DCore::QResourceManager< |