summaryrefslogtreecommitdiffstats
path: root/src/render/texture/textureimage.cpp
diff options
context:
space:
mode:
authorSean Harmer <sean.harmer@kdab.com>2016-04-01 15:26:33 +0100
committerSean Harmer <sean.harmer@kdab.com>2016-04-10 15:03:33 +0000
commit8f0b53aeb270713a0cd5b92889b91cc3d51849d8 (patch)
tree1669a9c90d01e8fb3a22318b4e3ad19d944c4c9d /src/render/texture/textureimage.cpp
parent1d34ab1358a8e0330755ee222f33883b5fc1d95b (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.cpp23
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);