summaryrefslogtreecommitdiffstats
path: root/src/render/backend/texturedatamanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/render/backend/texturedatamanager.cpp')
-rw-r--r--src/render/backend/texturedatamanager.cpp30
1 files changed, 27 insertions, 3 deletions
diff --git a/src/render/backend/texturedatamanager.cpp b/src/render/backend/texturedatamanager.cpp
index 528ade8e3..30c8cf370 100644
--- a/src/render/backend/texturedatamanager.cpp
+++ b/src/render/backend/texturedatamanager.cpp
@@ -47,10 +47,34 @@ namespace Qt3D {
namespace Render {
-void Qt3D::Render::TextureDataManager::addTextureData(Qt3D::QAbstractTextureProvider *texture)
+
+void TextureDataManager::addToPendingTextures(const QNodeId &textureId)
+{
+ m_texturesPending.append(textureId);
+}
+
+QVector<QNodeId> TextureDataManager::texturesPending()
+{
+ QVector<QNodeId> textureIds = m_texturesPending;
+ m_texturesPending.clear();
+ return textureIds;
+}
+
+HTextureData TextureDataManager::textureDataFromFunctor(QTextureDataFunctorPtr functor) const
+{
+ QHash<QTextureDataFunctorPtr, HTextureData>::const_iterator it = m_textureDataFunctors.begin();
+ const QHash<QTextureDataFunctorPtr, HTextureData>::const_iterator end = m_textureDataFunctors.end();
+ while (it != end) {
+ if (*it.key() == *functor)
+ return it.value();
+ ++it;
+ }
+ return HTextureData();
+}
+
+void TextureDataManager::addTextureDataForFunctor(HTextureData textureDataHandle, QTextureDataFunctorPtr functor)
{
- if (!contains(texture->id()) && !m_texturesPending.contains(texture))
- m_texturesPending.append(texture);
+ m_textureDataFunctors.insert(functor, textureDataHandle);
}
} // Render