diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/render/renderstates/renderstatecollection.cpp | 5 | ||||
-rw-r--r-- | src/render/renderstates/renderstatecollection_p.h | 2 |
2 files changed, 7 insertions, 0 deletions
diff --git a/src/render/renderstates/renderstatecollection.cpp b/src/render/renderstates/renderstatecollection.cpp index 17e794820..f9a7cb305 100644 --- a/src/render/renderstates/renderstatecollection.cpp +++ b/src/render/renderstates/renderstatecollection.cpp @@ -55,11 +55,13 @@ RenderStateCollection::~RenderStateCollection() void RenderStateCollection::setDirty(bool dirty) { + QMutexLocker lock(&m_mutex); m_dirty = dirty; } QVector<RenderStateNode*> RenderStateCollection::renderStates(RenderStateManager *manager) const { + QMutexLocker lock(&m_mutex); if (m_dirty) { m_renderStateNodes.clear(); @@ -79,11 +81,13 @@ QVector<RenderStateNode*> RenderStateCollection::renderStates(RenderStateManager bool RenderStateCollection::hasRenderStates() const { + QMutexLocker lock(&m_mutex); return !m_renderStateIds.empty(); } void RenderStateCollection::appendRenderState(Qt3DCore::QNodeId renderStateId) { + QMutexLocker lock(&m_mutex); if (!m_renderStateIds.contains(renderStateId)) { m_renderStateIds.append(renderStateId); m_dirty = true; @@ -92,6 +96,7 @@ void RenderStateCollection::appendRenderState(Qt3DCore::QNodeId renderStateId) void RenderStateCollection::removeRenderState(Qt3DCore::QNodeId renderStateId) { + QMutexLocker lock(&m_mutex); if (m_renderStateIds.removeAll(renderStateId) > 0) { m_dirty = true; } diff --git a/src/render/renderstates/renderstatecollection_p.h b/src/render/renderstates/renderstatecollection_p.h index b86f499fe..751d41250 100644 --- a/src/render/renderstates/renderstatecollection_p.h +++ b/src/render/renderstates/renderstatecollection_p.h @@ -49,6 +49,7 @@ // #include <Qt3DRender/private/renderstatenode_p.h> +#include <QtCore/qmutex.h> QT_BEGIN_NAMESPACE @@ -82,6 +83,7 @@ private: mutable QVector<Qt3DCore::QNodeId> m_renderStateIds; mutable QVector<RenderStateNode*> m_renderStateNodes; mutable bool m_dirty; + mutable QMutex m_mutex; }; } // namespace Render |