diff options
Diffstat (limited to 'src/render/backend/texturedatamanager.cpp')
-rw-r--r-- | src/render/backend/texturedatamanager.cpp | 30 |
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 |