summaryrefslogtreecommitdiffstats
path: root/tests/auto/render/gltfplugins/tst_gltfplugins.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/render/gltfplugins/tst_gltfplugins.cpp')
-rw-r--r--tests/auto/render/gltfplugins/tst_gltfplugins.cpp71
1 files changed, 28 insertions, 43 deletions
diff --git a/tests/auto/render/gltfplugins/tst_gltfplugins.cpp b/tests/auto/render/gltfplugins/tst_gltfplugins.cpp
index 813157251..a167fc140 100644
--- a/tests/auto/render/gltfplugins/tst_gltfplugins.cpp
+++ b/tests/auto/render/gltfplugins/tst_gltfplugins.cpp
@@ -327,9 +327,7 @@ void tst_gltfPlugins::createTestScene()
mesh->setYZMeshResolution(QSize(2, 2));
mesh->setYZMeshResolution(QSize(2, 3));
mesh->setYZMeshResolution(QSize(3, 2));
- Qt3DRender::QGeometryRenderer *renderer = new Qt3DRender::QGeometryRenderer;
- renderer->setView(mesh);
- createAndAddEntity(QStringLiteral("Cube with DiffuseMap"), renderer, material, transform);
+ createAndAddEntity(QStringLiteral("Cube with DiffuseMap"), mesh, material, transform);
}
// Cone with PhongAlpha
{
@@ -353,9 +351,7 @@ void tst_gltfPlugins::createTestScene()
mesh->setTopRadius(0.5f);
mesh->setBottomRadius(1.5f);
mesh->setLength(0.9f);
- auto renderer = new Qt3DRender::QGeometryRenderer;
- renderer->setView(mesh);
- createAndAddEntity(QStringLiteral("Cone with PhongAlpha"), renderer, material, transform);
+ createAndAddEntity(QStringLiteral("Cone with PhongAlpha"), mesh, material, transform);
}
// Cylinder with Phong
{
@@ -372,9 +368,7 @@ void tst_gltfPlugins::createTestScene()
mesh->setRings(3);
mesh->setLength(1.2f);
mesh->setSlices(16);
- auto renderer = new Qt3DRender::QGeometryRenderer;
- renderer->setView(mesh);
- createAndAddEntity(QStringLiteral("Cylinder with Phong"), renderer, material, transform);
+ createAndAddEntity(QStringLiteral("Cylinder with Phong"), mesh, material, transform);
}
// Plane with DiffuseSpecularMap
{
@@ -399,10 +393,8 @@ 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"),
- renderer, material, transform);
+ mesh, material, transform);
}
// Sphere with NormalDiffuseMap
{
@@ -430,10 +422,8 @@ 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"),
- renderer, material, transform);
+ mesh, material, transform);
}
// Sphere with NormalDiffuseMapAlpha
{
@@ -461,10 +451,8 @@ 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"),
- renderer, material, transform);
+ mesh, material, transform);
}
// Sphere with NormalDiffuseSpecularMap
{
@@ -495,10 +483,8 @@ 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"),
- renderer, material, transform);
+ mesh, material, transform);
}
// Torus with Gooch
{
@@ -520,9 +506,7 @@ void tst_gltfPlugins::createTestScene()
mesh->setMinorRadius(0.5f);
mesh->setRings(16);
mesh->setSlices(16);
- auto renderer = new Qt3DRender::QGeometryRenderer;
- renderer->setView(mesh);
- createAndAddEntity(QStringLiteral("Torus with Gooch"), renderer, material, transform);
+ createAndAddEntity(QStringLiteral("Torus with Gooch"), mesh, material, transform);
}
// Custom cube with per-vertex colors
{
@@ -533,7 +517,7 @@ void tst_gltfPlugins::createTestScene()
Qt3DRender::QGeometryRenderer *boxMesh = createCustomCube();
Qt3DCore::QBuffer *colorDataBuffer =
- new Qt3DCore::QBuffer(boxMesh->view()->geometry());
+ new Qt3DCore::QBuffer(boxMesh->geometry());
QByteArray colorBufferData;
colorBufferData.resize(8 * 4 * sizeof(float));
@@ -547,7 +531,7 @@ void tst_gltfPlugins::createTestScene()
colorDataBuffer->setData(colorBufferData);
- addColorAttributeToGeometry(boxMesh->view()->geometry(), colorDataBuffer, 8);
+ addColorAttributeToGeometry(boxMesh->geometry(), colorDataBuffer, 8);
createAndAddEntity(QStringLiteral("Custom cube with per-vertex colors"),
boxMesh, material, transform);
@@ -568,10 +552,8 @@ 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"),
- renderer, material, transform, parentEntity);
+ mesh, material, transform, parentEntity);
}
// Cube with custom material
{
@@ -590,7 +572,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->view()->geometry());
+ new Qt3DCore::QBuffer(boxMesh->geometry());
QByteArray offsetBufferData;
offsetBufferData.resize(8 * 3 * sizeof(float));
@@ -613,7 +595,7 @@ void tst_gltfPlugins::createTestScene()
customAttribute->setCount(8);
customAttribute->setName(QStringLiteral("vertexOffset"));
- boxMesh->view()->geometry()->addAttribute(customAttribute);
+ boxMesh->geometry()->addAttribute(customAttribute);
createAndAddEntity(QStringLiteral("Custom cube with on-top material"),
boxMesh, material, transform);
@@ -751,8 +733,12 @@ 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->view()->geometry();
- auto geometry2 = mesh2->view()->geometry();
+ auto geometry1 = mesh1->geometry();
+ if (!geometry1 && mesh1->view())
+ geometry1 = mesh1->view()->geometry();
+ auto geometry2 = mesh2->geometry();
+ if (!geometry2 && mesh2->view())
+ geometry2 = mesh2->view()->geometry();
// Check that attributes match.
compareAttributes(
findAttribute(Qt3DCore::QAttribute::defaultPositionAttributeName(),
@@ -980,8 +966,8 @@ QUrl tst_gltfPlugins::getTextureUrl(Qt3DRender::QAbstractTexture *tex)
Qt3DRender::QGeometryRenderer *tst_gltfPlugins::createCustomCube()
{
- Qt3DCore::QGeometryView *boxView = new Qt3DCore::QGeometryView();
- Qt3DCore::QGeometry *boxGeometry = new Qt3DCore::QGeometry(boxView);
+ Qt3DRender::QGeometryRenderer *boxMesh = new Qt3DRender::QGeometryRenderer;
+ Qt3DCore::QGeometry *boxGeometry = new Qt3DCore::QGeometry(boxMesh);
Qt3DCore::QBuffer *boxDataBuffer =
new Qt3DCore::QBuffer(boxGeometry);
Qt3DCore::QBuffer *indexDataBuffer =
@@ -1024,15 +1010,13 @@ Qt3DRender::QGeometryRenderer *tst_gltfPlugins::createCustomCube()
addPositionAttributeToGeometry(boxGeometry, boxDataBuffer, 8);
addIndexAttributeToGeometry(boxGeometry, indexDataBuffer, 36);
- boxView->setInstanceCount(1);
- boxView->setIndexOffset(0);
- boxView->setFirstInstance(0);
- boxView->setVertexCount(36);
- boxView->setPrimitiveType(Qt3DCore::QGeometryView::Triangles);
- boxView->setGeometry(boxGeometry);
+ boxMesh->setInstanceCount(1);
+ boxMesh->setIndexOffset(0);
+ boxMesh->setFirstInstance(0);
+ boxMesh->setVertexCount(36);
+ boxMesh->setPrimitiveType(Qt3DRender::QGeometryRenderer::Triangles);
+ boxMesh->setGeometry(boxGeometry);
- Qt3DRender::QGeometryRenderer *boxMesh = new Qt3DRender::QGeometryRenderer;
- boxMesh->setView(boxView);
return boxMesh;
}
@@ -1218,6 +1202,7 @@ void tst_gltfPlugins::exportAndImport()
Qt3DCore::QEntity *importedEntity = findChildEntity(importedScene, name);
QVERIFY(importedEntity != nullptr);
if (importedEntity) {
+ qDebug() << importedEntity->objectName();
compareComponents(transformComponent(exportedEntity),
transformComponent(importedEntity));
compareComponents(lightComponent(exportedEntity),