diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2016-04-01 15:26:33 +0100 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-04-10 15:03:33 +0000 |
commit | 8f0b53aeb270713a0cd5b92889b91cc3d51849d8 (patch) | |
tree | 1669a9c90d01e8fb3a22318b4e3ad19d944c4c9d /src/render/texture/textureimage.cpp | |
parent | 1d34ab1358a8e0330755ee222f33883b5fc1d95b (diff) |
QAbstractTextureImage creates creation changes
Backend type handles them too.
Change-Id: Ibd87c2e5a464c0953c1b017db21e7831ca4c6681
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/render/texture/textureimage.cpp')
-rw-r--r-- | src/render/texture/textureimage.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/render/texture/textureimage.cpp b/src/render/texture/textureimage.cpp index 5db481fea..8fbcf2fb4 100644 --- a/src/render/texture/textureimage.cpp +++ b/src/render/texture/textureimage.cpp @@ -41,6 +41,7 @@ #include <Qt3DCore/qscenepropertychange.h> #include <Qt3DRender/private/managers_p.h> #include <Qt3DRender/private/texturedatamanager_p.h> +#include <Qt3DRender/private/qabstracttextureimage_p.h> QT_BEGIN_NAMESPACE @@ -97,6 +98,28 @@ void TextureImage::updateFromPeer(Qt3DCore::QNode *peer) } } +void TextureImage::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) +{ + const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QAbstractTextureImageData>>(change); + const auto &data = typedChange->data; + m_mipLevel = data.mipLevel; + m_layer = data.layer; + m_face = data.face; + m_generator = data.generator; + + if (!change->parentId()) { + qWarning() << "No QAbstractTextureProvider parent found"; + } else { + m_textureProviderId = change->parentId(); + m_textureProvider = m_textureManager->lookupHandle(m_textureProviderId); + Texture *texture = m_textureManager->data(m_textureProvider); + Q_ASSERT(texture); + // Notify the Texture that it has a new TextureImage and needs an update + texture->addTextureImageData(m_textureImageManager->lookupHandle(peerId())); + texture->addToPendingTextureJobs(); + } +} + void TextureImage::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) { QScenePropertyChangePtr propertyChange = qSharedPointerCast<QScenePropertyChange>(e); |