summaryrefslogtreecommitdiffstats
path: root/src/quick3d
diff options
context:
space:
mode:
Diffstat (limited to 'src/quick3d')
-rw-r--r--src/quick3d/quick3drender/items/quick3dbuffer.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/quick3d/quick3drender/items/quick3dbuffer.cpp b/src/quick3d/quick3drender/items/quick3dbuffer.cpp
index e2a40da78..73292a3b5 100644
--- a/src/quick3d/quick3drender/items/quick3dbuffer.cpp
+++ b/src/quick3d/quick3drender/items/quick3dbuffer.cpp
@@ -53,6 +53,10 @@ namespace Render {
namespace Quick {
+namespace {
+const int jsValueTypeId = qMetaTypeId<QJSValue>();
+}
+
Quick3DBuffer::Quick3DBuffer(QObject *parent)
: QObject(parent)
, m_engine(nullptr)
@@ -84,8 +88,12 @@ QVariant Quick3DBuffer::bufferData() const
void Quick3DBuffer::setBufferData(const QVariant &bufferData)
{
- QJSValue jsValue = bufferData.value<QJSValue>();
- parentBuffer()->setData(convertToRawData(jsValue));
+ if (bufferData.userType() == QMetaType::QByteArray) {
+ parentBuffer()->setData(bufferData.toByteArray());
+ } else if (bufferData.userType() == jsValueTypeId) {
+ QJSValue jsValue = bufferData.value<QJSValue>();
+ parentBuffer()->setData(convertToRawData(jsValue));
+ }
}
void Quick3DBuffer::initEngines()