diff options
Diffstat (limited to 'src/render/texture/texture.cpp')
-rw-r--r-- | src/render/texture/texture.cpp | 10 |
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) { |