diff options
author | Juan José Casafranca <juan.casafranca@kdab.com> | 2020-09-30 13:34:23 +0200 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2020-10-27 08:54:20 +0100 |
commit | 9ed9a165f8470cfe88fdbc658b8d12b38f111f1e (patch) | |
tree | dc151790c31bef8c19aca9f4e67ef92a933b5af7 /src | |
parent | 2e089e74e5cb2337f801359157c842f24aa73f3d (diff) |
Pass the raw data to the texture data extractor
Change-Id: If6ca151b22f442985df1ff34108ca0bd216ebf47
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
(cherry picked from commit 6fdf835639e56c68ae01da894c7d2b9f552dd87d)
Diffstat (limited to 'src')
-rw-r--r-- | src/render/texture/qtextureimagedata.cpp | 6 | ||||
-rw-r--r-- | src/render/texture/qtextureimagedata.h | 2 | ||||
-rw-r--r-- | src/render/texture/qtextureimagedata_p.h | 5 |
3 files changed, 7 insertions, 6 deletions
diff --git a/src/render/texture/qtextureimagedata.cpp b/src/render/texture/qtextureimagedata.cpp index bdfe5deee..da4bc6800 100644 --- a/src/render/texture/qtextureimagedata.cpp +++ b/src/render/texture/qtextureimagedata.cpp @@ -89,7 +89,7 @@ QByteArray QTextureImageDataPrivate::data(int layer, int face, int mipmapLevel) } if (m_dataExtractor) - return m_dataExtractor(layer, face, mipmapLevel); + return m_dataExtractor(m_data, layer, face, mipmapLevel); if (m_isKtx) return ktxData(layer, face, mipmapLevel); @@ -117,7 +117,7 @@ void QTextureImageDataPrivate::setData(const QByteArray &data, } void QTextureImageDataPrivate::setData(const QByteArray &data, - std::function<QByteArray(int layer, int face, int mipmapLevel)> dataExtractor, + std::function<QByteArray(QByteArray rawData, int layer, int face, int mipmapLevel)> dataExtractor, bool isCompressed) { m_isCompressed = isCompressed; @@ -439,7 +439,7 @@ void QTextureImageData::setData(const QByteArray &data, int blockSize, bool isCo d->setData(data, blockSize, isCompressed); } -void QTextureImageData::setData(const QByteArray &data, std::function<QByteArray(int layer, int face, int mipmapLevel)> dataExtractor, bool isCompressed) +void QTextureImageData::setData(const QByteArray &data, std::function<QByteArray(QByteArray data, int layer, int face, int mipmapLevel)> dataExtractor, bool isCompressed) { Q_D(QTextureImageData); d->setData(data, dataExtractor, isCompressed); diff --git a/src/render/texture/qtextureimagedata.h b/src/render/texture/qtextureimagedata.h index f546cec8c..01844b943 100644 --- a/src/render/texture/qtextureimagedata.h +++ b/src/render/texture/qtextureimagedata.h @@ -100,7 +100,7 @@ public: bool isCompressed = false); void setData(const QByteArray &data, - std::function<QByteArray(int layer, int face, int mipmapLevel)>, + std::function<QByteArray(QByteArray rawData, int layer, int face, int mipmapLevel)>, bool isCompressed = false); QByteArray data(int layer = 0, int face = 0, int mipmapLevel = 0) const; diff --git a/src/render/texture/qtextureimagedata_p.h b/src/render/texture/qtextureimagedata_p.h index 30968e199..53ff2ca30 100644 --- a/src/render/texture/qtextureimagedata_p.h +++ b/src/render/texture/qtextureimagedata_p.h @@ -53,6 +53,7 @@ #include "qtextureimagedata.h" #include <Qt3DRender/private/qt3drender_global_p.h> +#include <functional> QT_BEGIN_NAMESPACE @@ -65,7 +66,7 @@ public: void setData(const QByteArray &data, int blockSize, bool isCompressed); void setData(const QByteArray &data, - std::function<QByteArray(int layer, int face, int mipmapLevel)> dataExtractor, + std::function<QByteArray(QByteArray, int, int, int)> dataExtractor, bool isCompressed); bool setCompressedFile(const QString &source); @@ -93,7 +94,7 @@ public: // public API changes. Consider https://codereview.qt-project.org/#/c/178474/ for Qt 6. bool m_isKtx; QByteArray m_data; - std::function<QByteArray(int layer, int face, int mipmapLevel)> m_dataExtractor; + std::function<QByteArray(QByteArray rawData, int layer, int face, int mipmapLevel)> m_dataExtractor; static QTextureImageDataPrivate *get(QTextureImageData *imageData); |