diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2016-11-23 18:40:37 +0100 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2017-01-13 07:57:28 +0000 |
commit | 030906b16f569a58ee5490e7a12c191b60160715 (patch) | |
tree | 51af758bc6d999abceb0f6250dd2d415762f3f0c /src/quick3d/quick3drender/items | |
parent | 50457f2025f3d38234bd4b27b086e75e4267f68e (diff) |
Quick3DBuffer: add helper method to read binary file
Change-Id: Ib96806720171cddc990f4b0df59a8690d56bc605
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/quick3d/quick3drender/items')
-rw-r--r-- | src/quick3d/quick3drender/items/quick3dbuffer.cpp | 21 | ||||
-rw-r--r-- | src/quick3d/quick3drender/items/quick3dbuffer_p.h | 2 |
2 files changed, 23 insertions, 0 deletions
diff --git a/src/quick3d/quick3drender/items/quick3dbuffer.cpp b/src/quick3d/quick3drender/items/quick3dbuffer.cpp index 5701adf07..d36ce8341 100644 --- a/src/quick3d/quick3drender/items/quick3dbuffer.cpp +++ b/src/quick3d/quick3drender/items/quick3dbuffer.cpp @@ -45,6 +45,8 @@ #include <QtQml/private/qjsvalue_p.h> #include <QtQml/private/qv4typedarray_p.h> #include <QtQml/private/qv4arraybuffer_p.h> +#include <Qt3DRender/private/qurlhelper_p.h> +#include <QtCore/qfile.h> QT_BEGIN_NAMESPACE @@ -107,6 +109,25 @@ void Quick3DBuffer::updateData(int offset, const QVariant &bufferData) } } +/*! + \qmlmethod string Quick3DBuffer::readBinaryFile(url &fileUrl) + + Reads the binary at \a fileUrl and return it as a QByteArray wrapped in a + QVariant + + \note this is provided as convenience for QML where reading files and creating + QByteArray is not possible + */ +QVariant Quick3DBuffer::readBinaryFile(const QUrl &fileUrl) +{ + QFile f(Qt3DRender::QUrlHelper::urlToLocalFileOrQrc(fileUrl)); + QByteArray data; + + if (f.open(QIODevice::ReadOnly)) + data = f.readAll(); + return QVariant(data); +} + void Quick3DBuffer::initEngines() { if (m_engine == nullptr) { diff --git a/src/quick3d/quick3drender/items/quick3dbuffer_p.h b/src/quick3d/quick3drender/items/quick3dbuffer_p.h index c5cb39cdf..d8dbafcb2 100644 --- a/src/quick3d/quick3drender/items/quick3dbuffer_p.h +++ b/src/quick3d/quick3drender/items/quick3dbuffer_p.h @@ -79,6 +79,8 @@ public: QVariant bufferData() const; void setBufferData(const QVariant &bufferData); + Q_INVOKABLE QVariant readBinaryFile(const QUrl &fileUrl); + public Q_SLOTS: void updateData(int offset, const QVariant &bytes); |