summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSean Harmer <sean.harmer@kdab.com>2016-04-01 15:44:22 +0100
committerSean Harmer <sean.harmer@kdab.com>2016-04-10 15:03:35 +0000
commit20ed96d5d051f5ad8d50a6937a2c40e9323c0d70 (patch)
tree92d818aab364e0333f39e1d4bb4d981641ee1f9d /src
parent8f0b53aeb270713a0cd5b92889b91cc3d51849d8 (diff)
QAbstractTexture creates creation changes
Change-Id: Ia164f44c53047c258c9e256fee20df0c8ecb9496 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src')
-rw-r--r--src/render/texture/qabstracttexture.cpp25
-rw-r--r--src/render/texture/qabstracttexture.h1
-rw-r--r--src/render/texture/qabstracttexture_p.h21
3 files changed, 47 insertions, 0 deletions
diff --git a/src/render/texture/qabstracttexture.cpp b/src/render/texture/qabstracttexture.cpp
index d177f0ec7..5859eadff 100644
--- a/src/render/texture/qabstracttexture.cpp
+++ b/src/render/texture/qabstracttexture.cpp
@@ -500,6 +500,31 @@ QTextureImageDataGeneratorPtr QAbstractTexture::dataGenerator() const
return d->m_dataFunctor;
}
+Qt3DCore::QNodeCreatedChangeBasePtr QAbstractTexture::createNodeCreationChange() const
+{
+ auto creationChange = Qt3DCore::QNodeCreatedChangePtr<QAbstractTextureData>::create(this);
+ auto &data = creationChange->data;
+ Q_D(const QAbstractTexture);
+ data.target = d->m_target;
+ data.format = d->m_format;
+ data.width = d->m_width;
+ data.height = d->m_height;
+ data.depth = d->m_depth;
+ data.autoMipMap = d->m_autoMipMap;
+ data.minFilter = d->m_minFilter;
+ data.magFilter = d->m_magFilter;
+ data.wrapModeX = d->m_wrapMode.x();
+ data.wrapModeY = d->m_wrapMode.y();
+ data.wrapModeZ = d->m_wrapMode.z();
+ data.maximumAnisotropy = d->m_maximumAnisotropy;
+ data.comparisonFunction = d->m_comparisonFunction;
+ data.comparisonMode = d->m_comparisonMode;
+ data.textureImageIds = qIdsForNodes(d->m_textureImages);
+ data.layers = d->m_layers;
+ data.dataFunctor = d->m_dataFunctor;
+ return creationChange;
+}
+
} // namespace Qt3DRender
QT_END_NAMESPACE
diff --git a/src/render/texture/qabstracttexture.h b/src/render/texture/qabstracttexture.h
index dd4d07eb9..56fbcf14f 100644
--- a/src/render/texture/qabstracttexture.h
+++ b/src/render/texture/qabstracttexture.h
@@ -333,6 +333,7 @@ protected:
private:
Q_DECLARE_PRIVATE(QAbstractTexture)
QT3D_CLONEABLE(QAbstractTexture)
+ Qt3DCore::QNodeCreatedChangeBasePtr createNodeCreationChange() const Q_DECL_OVERRIDE;
};
} // namespace Qt3DRender
diff --git a/src/render/texture/qabstracttexture_p.h b/src/render/texture/qabstracttexture_p.h
index 39ee6622b..2604bb506 100644
--- a/src/render/texture/qabstracttexture_p.h
+++ b/src/render/texture/qabstracttexture_p.h
@@ -87,6 +87,27 @@ public :
QTextureImageDataGeneratorPtr m_dataFunctor;
};
+struct QAbstractTextureData
+{
+ QAbstractTexture::Target target;
+ QAbstractTexture::TextureFormat format;
+ int width;
+ int height;
+ int depth;
+ bool autoMipMap;
+ QAbstractTexture::Filter minFilter;
+ QAbstractTexture::Filter magFilter;
+ QTextureWrapMode::WrapMode wrapModeX;
+ QTextureWrapMode::WrapMode wrapModeY;
+ QTextureWrapMode::WrapMode wrapModeZ;
+ float maximumAnisotropy;
+ QAbstractTexture::ComparisonFunction comparisonFunction;
+ QAbstractTexture::ComparisonMode comparisonMode;
+ Qt3DCore::QNodeIdVector textureImageIds;
+ int layers;
+ QTextureImageDataGeneratorPtr dataFunctor;
+};
+
} // QT3D
QT_END_NAMESPACE