From ff07e476266cd5038982dde7f6f1dff1612808b4 Mon Sep 17 00:00:00 2001 From: Zach Pomerantz Date: Mon, 14 Mar 2016 17:49:37 -0700 Subject: [PATCH] Make procedural dirty marker atomic --- libraries/procedural/src/procedural/Procedural.cpp | 8 ++++---- libraries/procedural/src/procedural/Procedural.h | 4 +++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/libraries/procedural/src/procedural/Procedural.cpp b/libraries/procedural/src/procedural/Procedural.cpp index 9b8d0fe294..071b07b48a 100644 --- a/libraries/procedural/src/procedural/Procedural.cpp +++ b/libraries/procedural/src/procedural/Procedural.cpp @@ -62,13 +62,13 @@ QJsonValue Procedural::getProceduralData(const QString& proceduralJson) { return doc.object()[PROCEDURAL_USER_DATA_KEY]; } -Procedural::Procedural() { - _state = std::make_shared(); +Procedural::Procedural() : _state { std::make_shared() } { + _proceduralDataDirty = false; } -Procedural::Procedural(const QString& userDataJson) { +Procedural::Procedural(const QString& userDataJson) : Procedural() { parse(userDataJson); - _state = std::make_shared(); + _proceduralDataDirty = true; } void Procedural::parse(const QString& userDataJson) { diff --git a/libraries/procedural/src/procedural/Procedural.h b/libraries/procedural/src/procedural/Procedural.h index 0e55f52f5a..f928d0e594 100644 --- a/libraries/procedural/src/procedural/Procedural.h +++ b/libraries/procedural/src/procedural/Procedural.h @@ -10,6 +10,8 @@ #ifndef hifi_RenderableProcedrualItem_h #define hifi_RenderableProcedrualItem_h +#include + #include #include #include @@ -74,7 +76,7 @@ protected: NetworkShaderPointer _networkShader; QJsonObject _parsedUniforms; QJsonArray _parsedChannels; - bool _proceduralDataDirty { true }; + std::atomic_bool _proceduralDataDirty; bool _shaderDirty { true }; bool _uniformsDirty { true }; bool _channelsDirty { true };