diff options
Diffstat (limited to 'src/quick3d')
-rw-r--r-- | src/quick3d/quick3drender/items/quick3dbuffer.cpp | 12 |
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() |