Make procedural dirty marker atomic

This commit is contained in:
Zach Pomerantz 2016-03-14 17:49:37 -07:00
parent 4017bea60f
commit ff07e47626
2 changed files with 7 additions and 5 deletions

View file

@ -62,13 +62,13 @@ QJsonValue Procedural::getProceduralData(const QString& proceduralJson) {
return doc.object()[PROCEDURAL_USER_DATA_KEY];
}
Procedural::Procedural() {
_state = std::make_shared<gpu::State>();
Procedural::Procedural() : _state { std::make_shared<gpu::State>() } {
_proceduralDataDirty = false;
}
Procedural::Procedural(const QString& userDataJson) {
Procedural::Procedural(const QString& userDataJson) : Procedural() {
parse(userDataJson);
_state = std::make_shared<gpu::State>();
_proceduralDataDirty = true;
}
void Procedural::parse(const QString& userDataJson) {

View file

@ -10,6 +10,8 @@
#ifndef hifi_RenderableProcedrualItem_h
#define hifi_RenderableProcedrualItem_h
#include <atomic>
#include <QtCore/qglobal.h>
#include <QtCore/QString>
#include <QtCore/QUrl>
@ -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 };