summaryrefslogtreecommitdiffstats
path: root/src/render/texture/texture.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/render/texture/texture.cpp')
-rw-r--r--src/render/texture/texture.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/render/texture/texture.cpp b/src/render/texture/texture.cpp
index 5a50fb30f..440a08e26 100644
--- a/src/render/texture/texture.cpp
+++ b/src/render/texture/texture.cpp
@@ -199,8 +199,7 @@ void Texture::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e)
m_properties.samples = propertyChange->value().toInt();
dirty = DirtyProperties;
} else if (propertyChange->propertyName() == QByteArrayLiteral("generator")) {
- m_dataFunctor = propertyChange->value().value<QTextureGeneratorPtr>();
- dirty = DirtyDataGenerator;
+ setDataGenerator(propertyChange->value().value<QTextureGeneratorPtr>());
}
}
break;
@@ -297,6 +296,13 @@ void Texture::updateFromData(QTextureDataPtr data)
}
}
+// Called by sceneChangeEvent or TextureDownloadRequest (both in AspectThread context)
+void Texture::setDataGenerator(const QTextureGeneratorPtr &generator)
+{
+ m_dataFunctor = generator;
+ addDirtyFlag(DirtyDataGenerator);
+}
+
bool Texture::isValid(TextureImageManager *manager) const
{
for (const QNodeId id : m_textureImageIds) {