summaryrefslogtreecommitdiffstats
path: root/src/quick3d/quick3drender
diff options
context:
space:
mode:
Diffstat (limited to 'src/quick3d/quick3drender')
-rw-r--r--src/quick3d/quick3drender/items/quick3dbuffer.cpp27
-rw-r--r--src/quick3d/quick3drender/items/quick3dbuffer_p.h8
-rw-r--r--src/quick3d/quick3drender/items/quick3dparameter.cpp4
-rw-r--r--src/quick3d/quick3drender/items/quick3dshaderdata.cpp6
-rw-r--r--src/quick3d/quick3drender/quick3drender.pro2
5 files changed, 29 insertions, 18 deletions
diff --git a/src/quick3d/quick3drender/items/quick3dbuffer.cpp b/src/quick3d/quick3drender/items/quick3dbuffer.cpp
index 73292a3b5..5701adf07 100644
--- a/src/quick3d/quick3drender/items/quick3dbuffer.cpp
+++ b/src/quick3d/quick3drender/items/quick3dbuffer.cpp
@@ -37,9 +37,10 @@
**
****************************************************************************/
-#include "quick3dbuffer_p.h"
-#include <QQmlEngine>
#include <QJSValue>
+#include <QQmlEngine>
+
+#include "quick3dbuffer_p.h"
#include <QtQml/private/qqmlengine_p.h>
#include <QtQml/private/qjsvalue_p.h>
#include <QtQml/private/qv4typedarray_p.h>
@@ -57,12 +58,12 @@ namespace {
const int jsValueTypeId = qMetaTypeId<QJSValue>();
}
-Quick3DBuffer::Quick3DBuffer(QObject *parent)
- : QObject(parent)
+Quick3DBuffer::Quick3DBuffer(Qt3DCore::QNode *parent)
+ : Qt3DRender::QBuffer(QBuffer::VertexBuffer, parent)
, m_engine(nullptr)
, m_v4engine(nullptr)
{
- QObject::connect(parentBuffer(), &Qt3DRender::QBuffer::dataChanged, this, &Quick3DBuffer::bufferDataChanged);
+ QObject::connect(this, &Qt3DRender::QBuffer::dataChanged, this, &Quick3DBuffer::bufferDataChanged);
}
QByteArray Quick3DBuffer::convertToRawData(const QJSValue &jsValue)
@@ -83,16 +84,26 @@ QByteArray Quick3DBuffer::convertToRawData(const QJSValue &jsValue)
QVariant Quick3DBuffer::bufferData() const
{
- return QVariant::fromValue(parentBuffer()->data());
+ return QVariant::fromValue(data());
}
void Quick3DBuffer::setBufferData(const QVariant &bufferData)
{
if (bufferData.userType() == QMetaType::QByteArray) {
- parentBuffer()->setData(bufferData.toByteArray());
+ QBuffer::setData(bufferData.toByteArray());
+ } else if (bufferData.userType() == jsValueTypeId) {
+ QJSValue jsValue = bufferData.value<QJSValue>();
+ QBuffer::setData(convertToRawData(jsValue));
+ }
+}
+
+void Quick3DBuffer::updateData(int offset, const QVariant &bufferData)
+{
+ if (bufferData.userType() == QMetaType::QByteArray) {
+ QBuffer::updateData(offset, bufferData.toByteArray());
} else if (bufferData.userType() == jsValueTypeId) {
QJSValue jsValue = bufferData.value<QJSValue>();
- parentBuffer()->setData(convertToRawData(jsValue));
+ QBuffer::updateData(offset, convertToRawData(jsValue));
}
}
diff --git a/src/quick3d/quick3drender/items/quick3dbuffer_p.h b/src/quick3d/quick3drender/items/quick3dbuffer_p.h
index 512e6936c..c5cb39cdf 100644
--- a/src/quick3d/quick3drender/items/quick3dbuffer_p.h
+++ b/src/quick3d/quick3drender/items/quick3dbuffer_p.h
@@ -69,17 +69,19 @@ namespace Render {
namespace Quick {
-class QT3DQUICKRENDERSHARED_PRIVATE_EXPORT Quick3DBuffer : public QObject
+class QT3DQUICKRENDERSHARED_PRIVATE_EXPORT Quick3DBuffer : public Qt3DRender::QBuffer
{
Q_OBJECT
Q_PROPERTY(QVariant data READ bufferData WRITE setBufferData NOTIFY bufferDataChanged)
public:
- explicit Quick3DBuffer(QObject *parent = nullptr);
- inline QBuffer *parentBuffer() const { return qobject_cast<QBuffer *>(parent()); }
+ explicit Quick3DBuffer(Qt3DCore::QNode *parent = nullptr);
QVariant bufferData() const;
void setBufferData(const QVariant &bufferData);
+public Q_SLOTS:
+ void updateData(int offset, const QVariant &bytes);
+
Q_SIGNALS:
void bufferDataChanged();
diff --git a/src/quick3d/quick3drender/items/quick3dparameter.cpp b/src/quick3d/quick3drender/items/quick3dparameter.cpp
index 22b6bba96..783f152c1 100644
--- a/src/quick3d/quick3drender/items/quick3dparameter.cpp
+++ b/src/quick3d/quick3drender/items/quick3dparameter.cpp
@@ -37,11 +37,11 @@
**
****************************************************************************/
-#include "quick3dparameter_p_p.h"
-
#include <QJSValue>
#include <QJSValueIterator>
+#include "quick3dparameter_p_p.h"
+
QT_BEGIN_NAMESPACE
namespace Qt3DRender {
diff --git a/src/quick3d/quick3drender/items/quick3dshaderdata.cpp b/src/quick3d/quick3drender/items/quick3dshaderdata.cpp
index e5901e8fb..dbf351695 100644
--- a/src/quick3d/quick3drender/items/quick3dshaderdata.cpp
+++ b/src/quick3d/quick3drender/items/quick3dshaderdata.cpp
@@ -37,12 +37,12 @@
**
****************************************************************************/
-#include "quick3dshaderdata_p.h"
-#include <private/qshaderdata_p.h>
-
#include <Qt3DQuickRender/private/quick3dshaderdataarray_p.h>
#include <QMetaProperty>
+#include "quick3dshaderdata_p.h"
+#include <private/qshaderdata_p.h>
+
QT_BEGIN_NAMESPACE
namespace Qt3DRender {
diff --git a/src/quick3d/quick3drender/quick3drender.pro b/src/quick3d/quick3drender/quick3drender.pro
index 959834870..3079bc494 100644
--- a/src/quick3d/quick3drender/quick3drender.pro
+++ b/src/quick3d/quick3drender/quick3drender.pro
@@ -22,8 +22,6 @@ HEADERS += \
qt3dquickrender_global_p.h \
qt3dquickrender_global.h
-!contains(QT_CONFIG, egl):DEFINES += QT_NO_EGL
-
# otherwise mingw headers do not declare common functions like ::strcasecmp
win32-g++*:QMAKE_CXXFLAGS_CXX11 = -std=gnu++0x