diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2016-04-01 15:44:22 +0100 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-04-10 15:03:35 +0000 |
commit | 20ed96d5d051f5ad8d50a6937a2c40e9323c0d70 (patch) | |
tree | 92d818aab364e0333f39e1d4bb4d981641ee1f9d /src | |
parent | 8f0b53aeb270713a0cd5b92889b91cc3d51849d8 (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.cpp | 25 | ||||
-rw-r--r-- | src/render/texture/qabstracttexture.h | 1 | ||||
-rw-r--r-- | src/render/texture/qabstracttexture_p.h | 21 |
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 |