summaryrefslogtreecommitdiffstats
path: root/src/render/renderstates/renderstatecollection.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/render/renderstates/renderstatecollection.cpp')
-rw-r--r--src/render/renderstates/renderstatecollection.cpp5
1 files changed, 5 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;
}