summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/extras/defaults/qskyboxentity.cpp5
-rw-r--r--src/extras/geometries/qconemesh.cpp4
-rw-r--r--src/extras/geometries/qconemesh.h4
-rw-r--r--src/extras/geometries/qcuboidmesh.cpp4
-rw-r--r--src/extras/geometries/qcuboidmesh.h4
-rw-r--r--src/extras/geometries/qcylindermesh.cpp5
-rw-r--r--src/extras/geometries/qcylindermesh.h4
-rw-r--r--src/extras/geometries/qplanemesh.cpp4
-rw-r--r--src/extras/geometries/qplanemesh.h4
-rw-r--r--src/extras/geometries/qspheremesh.cpp4
-rw-r--r--src/extras/geometries/qspheremesh.h4
-rw-r--r--src/extras/geometries/qtorusmesh.cpp4
-rw-r--r--src/extras/geometries/qtorusmesh.h4
-rw-r--r--src/plugins/sceneparsers/gltf/gltfimporter.cpp38
-rw-r--r--src/plugins/sceneparsers/gltfexport/gltfexporter.cpp13
-rw-r--r--src/render/framegraph/qrenderstateset.cpp2
-rw-r--r--src/render/frontend/qlevelofdetail.cpp9
17 files changed, 67 insertions, 49 deletions
diff --git a/src/extras/defaults/qskyboxentity.cpp b/src/extras/defaults/qskyboxentity.cpp
index 8d01e8d82..b12c0b304 100644
--- a/src/extras/defaults/qskyboxentity.cpp
+++ b/src/extras/defaults/qskyboxentity.cpp
@@ -54,6 +54,7 @@
#include <Qt3DRender/qgraphicsapifilter.h>
#include <Qt3DRender/qseamlesscubemap.h>
#include <Qt3DRender/qshaderprogram.h>
+#include <Qt3DRender/qgeometryrenderer.h>
QT_BEGIN_NAMESPACE
@@ -184,7 +185,9 @@ void QSkyboxEntityPrivate::init()
m_skyboxTexture->addTextureImage(m_negYImage);
m_skyboxTexture->addTextureImage(m_negZImage);
- q_func()->addComponent(m_mesh);
+ QGeometryRenderer *renderer = new QGeometryRenderer;
+ renderer->setView(m_mesh);
+ q_func()->addComponent(renderer);
q_func()->addComponent(m_material);
}
diff --git a/src/extras/geometries/qconemesh.cpp b/src/extras/geometries/qconemesh.cpp
index 508e7cfd3..4a8ab05c8 100644
--- a/src/extras/geometries/qconemesh.cpp
+++ b/src/extras/geometries/qconemesh.cpp
@@ -115,7 +115,7 @@ namespace Qt3DExtras {
*/
QConeMesh::QConeMesh(QNode *parent)
- : QGeometryRenderer(parent)
+ : Qt3DCore::QGeometryView(parent)
{
QConeGeometry *geometry = new QConeGeometry(this);
QObject::connect(geometry, &QConeGeometry::hasTopEndcapChanged, this, &QConeMesh::hasTopEndcapChanged);
@@ -126,7 +126,7 @@ QConeMesh::QConeMesh(QNode *parent)
QObject::connect(geometry, &QConeGeometry::slicesChanged, this, &QConeMesh::slicesChanged);
QObject::connect(geometry, &QConeGeometry::lengthChanged, this, &QConeMesh::lengthChanged);
- QGeometryRenderer::setGeometry(geometry);
+ QGeometryView::setGeometry(geometry);
}
/*! \internal */
diff --git a/src/extras/geometries/qconemesh.h b/src/extras/geometries/qconemesh.h
index 57fe0c0fc..ac7a7bf16 100644
--- a/src/extras/geometries/qconemesh.h
+++ b/src/extras/geometries/qconemesh.h
@@ -41,13 +41,13 @@
#define QT3DEXTRAS_QCONEMESH_H
#include <Qt3DExtras/qt3dextras_global.h>
-#include <Qt3DRender/qgeometryrenderer.h>
+#include <Qt3DCore/qgeometryview.h>
QT_BEGIN_NAMESPACE
namespace Qt3DExtras {
-class Q_3DEXTRASSHARED_EXPORT QConeMesh : public Qt3DRender::QGeometryRenderer
+class Q_3DEXTRASSHARED_EXPORT QConeMesh : public Qt3DCore::QGeometryView
{
Q_OBJECT
Q_PROPERTY(int rings READ rings WRITE setRings NOTIFY ringsChanged)
diff --git a/src/extras/geometries/qcuboidmesh.cpp b/src/extras/geometries/qcuboidmesh.cpp
index bdad566fc..8637f7a57 100644
--- a/src/extras/geometries/qcuboidmesh.cpp
+++ b/src/extras/geometries/qcuboidmesh.cpp
@@ -109,7 +109,7 @@ namespace Qt3DExtras {
* Constructs a new QCuboidMesh with \a parent.
*/
QCuboidMesh::QCuboidMesh(QNode *parent)
- : QGeometryRenderer(parent)
+ : Qt3DCore::QGeometryView(parent)
{
QCuboidGeometry *geometry = new QCuboidGeometry(this);
QObject::connect(geometry, &QCuboidGeometry::xExtentChanged, this, &QCuboidMesh::xExtentChanged);
@@ -118,7 +118,7 @@ QCuboidMesh::QCuboidMesh(QNode *parent)
QObject::connect(geometry, &QCuboidGeometry::xyMeshResolutionChanged, this, &QCuboidMesh::xyMeshResolutionChanged);
QObject::connect(geometry, &QCuboidGeometry::xzMeshResolutionChanged, this, &QCuboidMesh::xzMeshResolutionChanged);
QObject::connect(geometry, &QCuboidGeometry::yzMeshResolutionChanged, this, &QCuboidMesh::yzMeshResolutionChanged);
- QGeometryRenderer::setGeometry(geometry);
+ QGeometryView::setGeometry(geometry);
}
/*! \internal */
diff --git a/src/extras/geometries/qcuboidmesh.h b/src/extras/geometries/qcuboidmesh.h
index a945dbe2b..480ffaae3 100644
--- a/src/extras/geometries/qcuboidmesh.h
+++ b/src/extras/geometries/qcuboidmesh.h
@@ -41,14 +41,14 @@
#define QT3DEXTRAS_CUBOIDMESH_H
#include <Qt3DExtras/qt3dextras_global.h>
-#include <Qt3DRender/qgeometryrenderer.h>
+#include <Qt3DCore/qgeometryview.h>
#include <QtCore/QSize>
QT_BEGIN_NAMESPACE
namespace Qt3DExtras {
-class Q_3DEXTRASSHARED_EXPORT QCuboidMesh : public Qt3DRender::QGeometryRenderer
+class Q_3DEXTRASSHARED_EXPORT QCuboidMesh : public Qt3DCore::QGeometryView
{
Q_OBJECT
diff --git a/src/extras/geometries/qcylindermesh.cpp b/src/extras/geometries/qcylindermesh.cpp
index 3a495cce2..5aa3b90fd 100644
--- a/src/extras/geometries/qcylindermesh.cpp
+++ b/src/extras/geometries/qcylindermesh.cpp
@@ -54,7 +54,6 @@
QT_BEGIN_NAMESPACE
using namespace Qt3DCore;
-using namespace Qt3DRender;
namespace Qt3DExtras {
@@ -104,7 +103,7 @@ namespace Qt3DExtras {
* Constructs a new QCylinderMesh with \a parent.
*/
QCylinderMesh::QCylinderMesh(QNode *parent)
- : QGeometryRenderer(parent)
+ : Qt3DCore::QGeometryView(parent)
{
QCylinderGeometry *geometry = new QCylinderGeometry(this);
QObject::connect(geometry, &QCylinderGeometry::radiusChanged, this, &QCylinderMesh::radiusChanged);
@@ -112,7 +111,7 @@ QCylinderMesh::QCylinderMesh(QNode *parent)
QObject::connect(geometry, &QCylinderGeometry::slicesChanged, this, &QCylinderMesh::slicesChanged);
QObject::connect(geometry, &QCylinderGeometry::lengthChanged, this, &QCylinderMesh::lengthChanged);
- QGeometryRenderer::setGeometry(geometry);
+ QGeometryView::setGeometry(geometry);
}
/*! \internal */
diff --git a/src/extras/geometries/qcylindermesh.h b/src/extras/geometries/qcylindermesh.h
index f2c8fb01b..0117e5597 100644
--- a/src/extras/geometries/qcylindermesh.h
+++ b/src/extras/geometries/qcylindermesh.h
@@ -41,14 +41,14 @@
#define QT3DEXTRAS_QCYLINDERMESH_H
#include <Qt3DExtras/qt3dextras_global.h>
-#include <Qt3DRender/qgeometryrenderer.h>
+#include <Qt3DCore/qgeometryview.h>
QT_BEGIN_NAMESPACE
namespace Qt3DExtras {
-class Q_3DEXTRASSHARED_EXPORT QCylinderMesh : public Qt3DRender::QGeometryRenderer
+class Q_3DEXTRASSHARED_EXPORT QCylinderMesh : public Qt3DCore::QGeometryView
{
Q_OBJECT
Q_PROPERTY(int rings READ rings WRITE setRings NOTIFY ringsChanged)
diff --git a/src/extras/geometries/qplanemesh.cpp b/src/extras/geometries/qplanemesh.cpp
index 223e5a628..9dd5f70c5 100644
--- a/src/extras/geometries/qplanemesh.cpp
+++ b/src/extras/geometries/qplanemesh.cpp
@@ -94,14 +94,14 @@ namespace Qt3DExtras {
* Constructs a new QPlaneMesh with \a parent.
*/
QPlaneMesh::QPlaneMesh(QNode *parent)
- : QGeometryRenderer(parent)
+ : Qt3DCore::QGeometryView(parent)
{
QPlaneGeometry *geometry = new QPlaneGeometry(this);
QObject::connect(geometry, &QPlaneGeometry::widthChanged, this, &QPlaneMesh::widthChanged);
QObject::connect(geometry, &QPlaneGeometry::heightChanged, this, &QPlaneMesh::heightChanged);
QObject::connect(geometry, &QPlaneGeometry::resolutionChanged, this, &QPlaneMesh::meshResolutionChanged);
QObject::connect(geometry, &QPlaneGeometry::mirroredChanged, this, &QPlaneMesh::mirroredChanged);
- QGeometryRenderer::setGeometry(geometry);
+ QGeometryView::setGeometry(geometry);
}
/*! \internal */
diff --git a/src/extras/geometries/qplanemesh.h b/src/extras/geometries/qplanemesh.h
index 923af8897..fc71bd93a 100644
--- a/src/extras/geometries/qplanemesh.h
+++ b/src/extras/geometries/qplanemesh.h
@@ -41,14 +41,14 @@
#define QT3DEXTRAS_QPLANEMESH_H
#include <Qt3DExtras/qt3dextras_global.h>
-#include <Qt3DRender/qgeometryrenderer.h>
+#include <Qt3DCore/qgeometryview.h>
#include <QtCore/QSize>
QT_BEGIN_NAMESPACE
namespace Qt3DExtras {
-class Q_3DEXTRASSHARED_EXPORT QPlaneMesh : public Qt3DRender::QGeometryRenderer
+class Q_3DEXTRASSHARED_EXPORT QPlaneMesh : public Qt3DCore::QGeometryView
{
Q_OBJECT
Q_PROPERTY(float width READ width WRITE setWidth NOTIFY widthChanged)
diff --git a/src/extras/geometries/qspheremesh.cpp b/src/extras/geometries/qspheremesh.cpp
index 28854fe29..13b8ecf5e 100644
--- a/src/extras/geometries/qspheremesh.cpp
+++ b/src/extras/geometries/qspheremesh.cpp
@@ -93,14 +93,14 @@ namespace Qt3DExtras {
* Constructs a new QSphereMesh with \a parent.
*/
QSphereMesh::QSphereMesh(QNode *parent)
- : QGeometryRenderer(parent)
+ : Qt3DCore::QGeometryView(parent)
{
QSphereGeometry *geometry = new QSphereGeometry(this);
QObject::connect(geometry, &QSphereGeometry::radiusChanged, this, &QSphereMesh::radiusChanged);
QObject::connect(geometry, &QSphereGeometry::ringsChanged, this, &QSphereMesh::ringsChanged);
QObject::connect(geometry, &QSphereGeometry::slicesChanged, this, &QSphereMesh::slicesChanged);
QObject::connect(geometry, &QSphereGeometry::generateTangentsChanged, this, &QSphereMesh::generateTangentsChanged);
- QGeometryRenderer::setGeometry(geometry);
+ QGeometryView::setGeometry(geometry);
}
/*! \internal */
diff --git a/src/extras/geometries/qspheremesh.h b/src/extras/geometries/qspheremesh.h
index 998cd7c0e..170f70215 100644
--- a/src/extras/geometries/qspheremesh.h
+++ b/src/extras/geometries/qspheremesh.h
@@ -41,7 +41,7 @@
#define QT3DEXTRAS_QSPHEREMESH_H
#include <Qt3DExtras/qt3dextras_global.h>
-#include <Qt3DRender/qgeometryrenderer.h>
+#include <Qt3DCore/QGeometryView>
QT_BEGIN_NAMESPACE
@@ -49,7 +49,7 @@ namespace Qt3DExtras {
class QSphereMeshPrivate;
-class Q_3DEXTRASSHARED_EXPORT QSphereMesh : public Qt3DRender::QGeometryRenderer
+class Q_3DEXTRASSHARED_EXPORT QSphereMesh : public Qt3DCore::QGeometryView
{
Q_OBJECT
Q_PROPERTY(int rings READ rings WRITE setRings NOTIFY ringsChanged)
diff --git a/src/extras/geometries/qtorusmesh.cpp b/src/extras/geometries/qtorusmesh.cpp
index fd10afc1e..b195ef631 100644
--- a/src/extras/geometries/qtorusmesh.cpp
+++ b/src/extras/geometries/qtorusmesh.cpp
@@ -96,7 +96,7 @@ namespace Qt3DExtras {
* Constructs a new QTorusMesh with \a parent.
*/
QTorusMesh::QTorusMesh(QNode *parent)
- : QGeometryRenderer(parent)
+ : Qt3DCore::QGeometryView(parent)
{
QTorusGeometry *geometry = new QTorusGeometry(this);
QObject::connect(geometry, &QTorusGeometry::radiusChanged, this, &QTorusMesh::radiusChanged);
@@ -104,7 +104,7 @@ QTorusMesh::QTorusMesh(QNode *parent)
QObject::connect(geometry, &QTorusGeometry::slicesChanged, this, &QTorusMesh::slicesChanged);
QObject::connect(geometry, &QTorusGeometry::minorRadiusChanged, this, &QTorusMesh::minorRadiusChanged);
- QGeometryRenderer::setGeometry(geometry);
+ QGeometryView::setGeometry(geometry);
}
/*! \internal */
diff --git a/src/extras/geometries/qtorusmesh.h b/src/extras/geometries/qtorusmesh.h
index 2fd9f0a23..e36d94097 100644
--- a/src/extras/geometries/qtorusmesh.h
+++ b/src/extras/geometries/qtorusmesh.h
@@ -41,13 +41,13 @@
#define QT3DEXTRAS_QTORUSMESH_H
#include <Qt3DExtras/qt3dextras_global.h>
-#include <Qt3DRender/qgeometryrenderer.h>
+#include <Qt3DCore/qgeometryview.h>
QT_BEGIN_NAMESPACE
namespace Qt3DExtras {
-class Q_3DEXTRASSHARED_EXPORT QTorusMesh : public Qt3DRender::QGeometryRenderer
+class Q_3DEXTRASSHARED_EXPORT QTorusMesh : public Qt3DCore::QGeometryView
{
Q_OBJECT
Q_PROPERTY(int rings READ rings WRITE setRings NOTIFY ringsChanged)
diff --git a/src/plugins/sceneparsers/gltf/gltfimporter.cpp b/src/plugins/sceneparsers/gltf/gltfimporter.cpp
index b141a44a5..05c235977 100644
--- a/src/plugins/sceneparsers/gltf/gltfimporter.cpp
+++ b/src/plugins/sceneparsers/gltf/gltfimporter.cpp
@@ -1740,6 +1740,7 @@ void GLTFImporter::processJSONMesh(const QString &id, const QJsonObject &json)
const QString material = (m_majorVersion > 1) ? QString::number(matValue.toInt()) : matValue.toString();
QGeometryRenderer *geometryRenderer = new QGeometryRenderer;
+ QGeometryView *geometryView = new QGeometryView;
QGeometry *meshGeometry = new QGeometry(geometryRenderer);
//Set Primitive Type
@@ -1815,7 +1816,8 @@ void GLTFImporter::processJSONMesh(const QString &id, const QJsonObject &json)
}
} // of has indices
- geometryRenderer->setGeometry(meshGeometry);
+ geometryView->setGeometry(meshGeometry);
+ geometryRenderer->setView(geometryView);
geometryRenderer->setObjectName(meshName);
m_meshDict.insert(id, geometryRenderer);
@@ -1823,17 +1825,23 @@ void GLTFImporter::processJSONMesh(const QString &id, const QJsonObject &json)
} else {
QGeometryRenderer *mesh = nullptr;
if (meshType == QStringLiteral("cone")) {
- mesh = new QConeMesh;
+ mesh = new QGeometryRenderer;
+ mesh->setView(new QConeMesh);
} else if (meshType == QStringLiteral("cuboid")) {
- mesh = new QCuboidMesh;
+ mesh = new QGeometryRenderer;
+ mesh->setView(new QCuboidMesh);
} else if (meshType == QStringLiteral("cylinder")) {
- mesh = new QCylinderMesh;
+ mesh = new QGeometryRenderer;
+ mesh->setView(new QCylinderMesh);
} else if (meshType == QStringLiteral("plane")) {
- mesh = new QPlaneMesh;
+ mesh = new QGeometryRenderer;
+ mesh->setView(new QPlaneMesh);
} else if (meshType == QStringLiteral("sphere")) {
- mesh = new QSphereMesh;
+ mesh = new QGeometryRenderer;
+ mesh->setView(new QSphereMesh);
} else if (meshType == QStringLiteral("torus")) {
- mesh = new QTorusMesh;
+ mesh = new QGeometryRenderer;
+ mesh->setView(new QTorusMesh);
} else {
qCWarning(GLTFImporterLog,
"Invalid mesh type: %ls for mesh: %ls",
@@ -1844,30 +1852,34 @@ void GLTFImporter::processJSONMesh(const QString &id, const QJsonObject &json)
if (mesh) {
// Read and set properties
const QJsonObject propObj = json.value(KEY_PROPERTIES).toObject();
+ QObject *target = mesh;
+ if (mesh->view())
+ target = mesh->view();
for (auto it = propObj.begin(), end = propObj.end(); it != end; ++it) {
const QByteArray propName = it.key().toLatin1();
// Basic mesh types only have bool, int, float, and QSize type properties
if (it.value().isBool()) {
- mesh->setProperty(propName.constData(), QVariant(it.value().toBool()));
+ target->setProperty(propName.constData(), QVariant(it.value().toBool()));
} else if (it.value().isArray()) {
const QJsonArray valueArray = it.value().toArray();
if (valueArray.size() == 2) {
QSize size;
size.setWidth(valueArray.at(0).toInt());
size.setHeight(valueArray.at(1).toInt());
- mesh->setProperty(propName.constData(), QVariant(size));
+ target->setProperty(propName.constData(), QVariant(size));
}
} else {
- const QVariant::Type propType = mesh->property(propName.constData()).type();
+ const QVariant::Type propType = target->property(propName.constData()).type();
if (propType == QVariant::Int) {
- mesh->setProperty(propName.constData(), QVariant(it.value().toInt()));
+ target->setProperty(propName.constData(), QVariant(it.value().toInt()));
} else {
- mesh->setProperty(propName.constData(),
- QVariant(float(it.value().toDouble())));
+ target->setProperty(propName.constData(),
+ QVariant(float(it.value().toDouble())));
}
}
}
mesh->setObjectName(meshName);
+ mesh->view()->setObjectName(meshName);
m_meshMaterialDict[mesh] = (m_majorVersion > 1) ?
QString::number(json.value(KEY_MATERIAL).toInt()) :
json.value(KEY_MATERIAL).toString();
diff --git a/src/plugins/sceneparsers/gltfexport/gltfexporter.cpp b/src/plugins/sceneparsers/gltfexport/gltfexporter.cpp
index 8b4fac1ce..7be8dd43e 100644
--- a/src/plugins/sceneparsers/gltfexport/gltfexporter.cpp
+++ b/src/plugins/sceneparsers/gltfexport/gltfexporter.cpp
@@ -734,10 +734,13 @@ void GLTFExporter::parseMeshes()
int meshCount = 0;
for (auto it = m_meshMap.constBegin(); it != m_meshMap.constEnd(); ++it) {
Node *node = it.key();
- QGeometryRenderer *mesh = it.value();
+ QGeometryRenderer *renderer = it.value();
+ QGeometryView *mesh = renderer->view();
+ if (!mesh)
+ continue;
MeshInfo meshInfo;
- meshInfo.originalName = mesh->objectName();
+ meshInfo.originalName = mesh->objectName().isEmpty() ? renderer->objectName() : mesh->objectName();
meshInfo.name = newMeshName();
meshInfo.materialName = m_materialInfo.value(m_materialMap.value(node)).name;
@@ -764,7 +767,7 @@ void GLTFExporter::parseMeshes()
}
if (meshInfo.meshType != TypeNone) {
- meshInfo.meshComponent = mesh;
+ meshInfo.meshComponent = renderer;
cacheDefaultProperties(meshInfo.meshType);
if (GLTFExporterLog().isDebugEnabled()) {
@@ -973,7 +976,7 @@ void GLTFExporter::parseMeshes()
}
meshCount++;
- m_meshInfo.insert(mesh, meshInfo);
+ m_meshInfo.insert(renderer, meshInfo);
}
qCDebug(GLTFExporterLog, "Total buffer size: %i", m_buffer.size());
@@ -1249,7 +1252,7 @@ bool GLTFExporter::saveScene()
mesh["name"] = meshInfo.originalName;
if (meshInfo.meshType != TypeNone) {
QJsonObject properties;
- exportGenericProperties(properties, meshInfo.meshType, meshInfo.meshComponent);
+ exportGenericProperties(properties, meshInfo.meshType, meshInfo.meshComponent->view());
mesh["type"] = meshInfo.meshTypeStr;
mesh["properties"] = properties;
mesh["material"] = meshInfo.materialName;
diff --git a/src/render/framegraph/qrenderstateset.cpp b/src/render/framegraph/qrenderstateset.cpp
index 2b701e67e..6923e8034 100644
--- a/src/render/framegraph/qrenderstateset.cpp
+++ b/src/render/framegraph/qrenderstateset.cpp
@@ -145,7 +145,7 @@ QRenderStateSetPrivate::QRenderStateSetPrivate()
Entity {
id: sphereEntity
components: [
- SphereMesh {},
+ GeometryRenderer { view: SphereMesh {} },
PhongMaterial {}
]
}
diff --git a/src/render/frontend/qlevelofdetail.cpp b/src/render/frontend/qlevelofdetail.cpp
index fcc826f66..9b54e832e 100644
--- a/src/render/frontend/qlevelofdetail.cpp
+++ b/src/render/frontend/qlevelofdetail.cpp
@@ -152,11 +152,12 @@ void QLevelOfDetailPrivate::setCurrentIndex(int currentIndex)
thresholdType: LevelOfDetail.DistanceToCameraThreshold
}
- CylinderMesh {
+ GeometryRenderer {
id: mesh
-
- property var sliceValues: [20, 10, 6, 4]
- slices: sliceValues[lod.currentIndex]
+ view: CylinderMesh {
+ property var sliceValues: [20, 10, 6, 4]
+ slices: sliceValues[lod.currentIndex]
+ }
}
Entity {