summaryrefslogtreecommitdiffstats
path: root/tests/auto/render/gltfplugins/tst_gltfplugins.cpp
diff options
context:
space:
mode:
authorMike Krus <mike.krus@kdab.com>2020-02-11 14:14:30 +0000
committerMike Krus <mike.krus@kdab.com>2020-02-27 12:10:08 +0000
commit5bf4f93fcb8ff16aeadf55644be351c9989ab5b2 (patch)
tree9a502509da33a48dade8f7cbd0af1e7d3444b2f3 /tests/auto/render/gltfplugins/tst_gltfplugins.cpp
parent703090204ef41bced5634bbb332551dea1dd7b37 (diff)
Make default geometries views
In Extras, make QTorusMesh and others a QGeometryView rather than a QGeometryRenderer. Requires changes to scene graphs here and there but going forward there simple shapes could be used as proxies for picking or collision detection, etc. Change-Id: Id488e064080dfd303e448aba11e6b242236b81d4 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'tests/auto/render/gltfplugins/tst_gltfplugins.cpp')
-rw-r--r--tests/auto/render/gltfplugins/tst_gltfplugins.cpp67
1 files changed, 44 insertions, 23 deletions
diff --git a/tests/auto/render/gltfplugins/tst_gltfplugins.cpp b/tests/auto/render/gltfplugins/tst_gltfplugins.cpp
index 26dddf12f..fbf24b22e 100644
--- a/tests/auto/render/gltfplugins/tst_gltfplugins.cpp
+++ b/tests/auto/render/gltfplugins/tst_gltfplugins.cpp
@@ -67,6 +67,7 @@
#include <Qt3DRender/qtexture.h>
#include <Qt3DRender/qcolormask.h>
#include <Qt3DRender/qblendequation.h>
+#include <Qt3DRender/qgeometryrenderer.h>
#include <Qt3DExtras/qconemesh.h>
#include <Qt3DExtras/qcuboidmesh.h>
@@ -326,7 +327,9 @@ void tst_gltfPlugins::createTestScene()
mesh->setYZMeshResolution(QSize(2, 2));
mesh->setYZMeshResolution(QSize(2, 3));
mesh->setYZMeshResolution(QSize(3, 2));
- createAndAddEntity(QStringLiteral("Cube with DiffuseMap"), mesh, material, transform);
+ Qt3DRender::QGeometryRenderer *renderer = new Qt3DRender::QGeometryRenderer;
+ renderer->setView(mesh);
+ createAndAddEntity(QStringLiteral("Cube with DiffuseMap"), renderer, material, transform);
}
// Cone with PhongAlpha
{
@@ -350,7 +353,9 @@ void tst_gltfPlugins::createTestScene()
mesh->setTopRadius(0.5f);
mesh->setBottomRadius(1.5f);
mesh->setLength(0.9f);
- createAndAddEntity(QStringLiteral("Cone with PhongAlpha"), mesh, material, transform);
+ auto renderer = new Qt3DRender::QGeometryRenderer;
+ renderer->setView(mesh);
+ createAndAddEntity(QStringLiteral("Cone with PhongAlpha"), renderer, material, transform);
}
// Cylinder with Phong
{
@@ -367,7 +372,9 @@ void tst_gltfPlugins::createTestScene()
mesh->setRings(3);
mesh->setLength(1.2f);
mesh->setSlices(16);
- createAndAddEntity(QStringLiteral("Cylinder with Phong"), mesh, material, transform);
+ auto renderer = new Qt3DRender::QGeometryRenderer;
+ renderer->setView(mesh);
+ createAndAddEntity(QStringLiteral("Cylinder with Phong"), renderer, material, transform);
}
// Plane with DiffuseSpecularMap
{
@@ -392,8 +399,10 @@ void tst_gltfPlugins::createTestScene()
mesh->setMeshResolution(QSize(3, 3));
mesh->setHeight(1.5f);
mesh->setWidth(1.2f);
+ auto renderer = new Qt3DRender::QGeometryRenderer;
+ renderer->setView(mesh);
createAndAddEntity(QStringLiteral("Plane with DiffuseSpecularMap"),
- mesh, material, transform);
+ renderer, material, transform);
}
// Sphere with NormalDiffuseMap
{
@@ -421,8 +430,10 @@ void tst_gltfPlugins::createTestScene()
mesh->setRings(16);
mesh->setSlices(16);
mesh->setGenerateTangents(true);
+ auto renderer = new Qt3DRender::QGeometryRenderer;
+ renderer->setView(mesh);
createAndAddEntity(QStringLiteral("Sphere with NormalDiffuseMap"),
- mesh, material, transform);
+ renderer, material, transform);
}
// Sphere with NormalDiffuseMapAlpha
{
@@ -450,8 +461,10 @@ void tst_gltfPlugins::createTestScene()
mesh->setRings(16);
mesh->setSlices(16);
mesh->setGenerateTangents(true);
+ auto renderer = new Qt3DRender::QGeometryRenderer;
+ renderer->setView(mesh);
createAndAddEntity(QStringLiteral("Sphere with NormalDiffuseMapAlpha"),
- mesh, material, transform);
+ renderer, material, transform);
}
// Sphere with NormalDiffuseSpecularMap
{
@@ -482,8 +495,10 @@ void tst_gltfPlugins::createTestScene()
mesh->setRings(16);
mesh->setSlices(16);
mesh->setGenerateTangents(true);
+ auto renderer = new Qt3DRender::QGeometryRenderer;
+ renderer->setView(mesh);
createAndAddEntity(QStringLiteral("Sphere with NormalDiffuseSpecularMap"),
- mesh, material, transform);
+ renderer, material, transform);
}
// Torus with Gooch
{
@@ -505,7 +520,9 @@ void tst_gltfPlugins::createTestScene()
mesh->setMinorRadius(0.5f);
mesh->setRings(16);
mesh->setSlices(16);
- createAndAddEntity(QStringLiteral("Torus with Gooch"), mesh, material, transform);
+ auto renderer = new Qt3DRender::QGeometryRenderer;
+ renderer->setView(mesh);
+ createAndAddEntity(QStringLiteral("Torus with Gooch"), renderer, material, transform);
}
// Custom cube with per-vertex colors
{
@@ -516,7 +533,7 @@ void tst_gltfPlugins::createTestScene()
Qt3DRender::QGeometryRenderer *boxMesh = createCustomCube();
Qt3DCore::QBuffer *colorDataBuffer =
- new Qt3DCore::QBuffer(boxMesh->geometry());
+ new Qt3DCore::QBuffer(boxMesh->view()->geometry());
QByteArray colorBufferData;
colorBufferData.resize(8 * 4 * sizeof(float));
@@ -530,7 +547,7 @@ void tst_gltfPlugins::createTestScene()
colorDataBuffer->setData(colorBufferData);
- addColorAttributeToGeometry(boxMesh->geometry(), colorDataBuffer, 8);
+ addColorAttributeToGeometry(boxMesh->view()->geometry(), colorDataBuffer, 8);
createAndAddEntity(QStringLiteral("Custom cube with per-vertex colors"),
boxMesh, material, transform);
@@ -551,8 +568,10 @@ void tst_gltfPlugins::createTestScene()
mesh->setRings(3);
mesh->setLength(1.5f);
mesh->setSlices(16);
+ auto renderer = new Qt3DRender::QGeometryRenderer;
+ renderer->setView(mesh);
createAndAddEntity(QStringLiteral("Child with Phong"),
- mesh, material, transform, parentEntity);
+ renderer, material, transform, parentEntity);
}
// Cube with custom material
{
@@ -571,7 +590,7 @@ void tst_gltfPlugins::createTestScene()
transform->setRotation(Qt3DCore::QTransform::fromAxisAndAngle(1.0f, 2.0f, 3.0f, 90.0f));
Qt3DRender::QGeometryRenderer *boxMesh = createCustomCube();
Qt3DCore::QBuffer *offsetBuffer =
- new Qt3DCore::QBuffer(boxMesh->geometry());
+ new Qt3DCore::QBuffer(boxMesh->view()->geometry());
QByteArray offsetBufferData;
offsetBufferData.resize(8 * 3 * sizeof(float));
@@ -594,7 +613,7 @@ void tst_gltfPlugins::createTestScene()
customAttribute->setCount(8);
customAttribute->setName(QStringLiteral("vertexOffset"));
- boxMesh->geometry()->addAttribute(customAttribute);
+ boxMesh->view()->geometry()->addAttribute(customAttribute);
createAndAddEntity(QStringLiteral("Custom cube with on-top material"),
boxMesh, material, transform);
@@ -732,8 +751,8 @@ void tst_gltfPlugins::compareComponents(Qt3DCore::QComponent *c1, Qt3DCore::QCom
if (auto mesh1 = qobject_cast<Qt3DRender::QGeometryRenderer *>(c1)) {
auto mesh2 = qobject_cast<Qt3DRender::QGeometryRenderer *>(c2);
QVERIFY(mesh2 != nullptr);
- auto geometry1 = mesh1->geometry();
- auto geometry2 = mesh2->geometry();
+ auto geometry1 = mesh1->view()->geometry();
+ auto geometry2 = mesh2->view()->geometry();
// Check that attributes match.
compareAttributes(
findAttribute(Qt3DCore::QAttribute::defaultPositionAttributeName(),
@@ -961,8 +980,8 @@ QUrl tst_gltfPlugins::getTextureUrl(Qt3DRender::QAbstractTexture *tex)
Qt3DRender::QGeometryRenderer *tst_gltfPlugins::createCustomCube()
{
- Qt3DRender::QGeometryRenderer *boxMesh = new Qt3DRender::QGeometryRenderer;
- Qt3DCore::QGeometry *boxGeometry = new Qt3DCore::QGeometry(boxMesh);
+ Qt3DCore::QGeometryView *boxView = new Qt3DCore::QGeometryView();
+ Qt3DCore::QGeometry *boxGeometry = new Qt3DCore::QGeometry(boxView);
Qt3DCore::QBuffer *boxDataBuffer =
new Qt3DCore::QBuffer(boxGeometry);
Qt3DCore::QBuffer *indexDataBuffer =
@@ -1005,13 +1024,15 @@ Qt3DRender::QGeometryRenderer *tst_gltfPlugins::createCustomCube()
addPositionAttributeToGeometry(boxGeometry, boxDataBuffer, 8);
addIndexAttributeToGeometry(boxGeometry, indexDataBuffer, 36);
- boxMesh->setInstanceCount(1);
- boxMesh->setIndexOffset(0);
- boxMesh->setFirstInstance(0);
- boxMesh->setVertexCount(36);
- boxMesh->setPrimitiveType(Qt3DRender::QGeometryRenderer::Triangles);
- boxMesh->setGeometry(boxGeometry);
+ boxView->setInstanceCount(1);
+ boxView->setIndexOffset(0);
+ boxView->setFirstInstance(0);
+ boxView->setVertexCount(36);
+ boxView->setPrimitiveType(Qt3DCore::QGeometryView::Triangles);
+ boxView->setGeometry(boxGeometry);
+ Qt3DRender::QGeometryRenderer *boxMesh = new Qt3DRender::QGeometryRenderer;
+ boxMesh->setView(boxView);
return boxMesh;
}