diff options
Diffstat (limited to 'tests/auto/render/geometryloaders/tst_geometryloaders.cpp')
-rw-r--r-- | tests/auto/render/geometryloaders/tst_geometryloaders.cpp | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/tests/auto/render/geometryloaders/tst_geometryloaders.cpp b/tests/auto/render/geometryloaders/tst_geometryloaders.cpp index 03c3abc31..15600dc75 100644 --- a/tests/auto/render/geometryloaders/tst_geometryloaders.cpp +++ b/tests/auto/render/geometryloaders/tst_geometryloaders.cpp @@ -48,6 +48,8 @@ #include <Qt3DRender/private/qgeometryloaderfactory_p.h> #include <Qt3DRender/private/qgeometryloaderinterface_p.h> +#include "../../../../src/plugins/geometryloaders/qtgeometryloaders-config.h" + using namespace Qt3DRender; Q_GLOBAL_STATIC_WITH_ARGS(QFactoryLoader, geometryLoader, @@ -62,6 +64,9 @@ private Q_SLOTS: void testPLYLoader(); void testSTLLoader(); void testGLTFLoader(); +#ifdef QT_3DGEOMETRYLOADERS_FBX + void testFBXLoader(); +#endif }; void tst_geometryloaders::testOBJLoader() @@ -213,6 +218,47 @@ void tst_geometryloaders::testGLTFLoader() file.close(); } +#ifdef QT_3DGEOMETRYLOADERS_FBX +void tst_geometryloaders::testFBXLoader() +{ + QScopedPointer<QGeometryLoaderInterface> loader; + loader.reset(qLoadPlugin<QGeometryLoaderInterface, QGeometryLoaderFactory>(geometryLoader(), QStringLiteral("fbx"))); + QVERIFY(loader); + if (!loader) + return; + + QFile file(QStringLiteral(":/cube.fbx")); + if (!file.open(QIODevice::ReadOnly)) { + qDebug("Could not open test file for reading"); + return; + } + + bool loaded = loader->load(&file, QStringLiteral("Cube")); + QVERIFY(loaded); + if (!loaded) + return; + + QGeometry *geometry = loader->geometry(); + QVERIFY(geometry); + if (!geometry) + return; + + QCOMPARE(geometry->attributes().count(), 3); + for (QAttribute *attr : geometry->attributes()) { + switch (attr->attributeType()) { + case QAttribute::IndexAttribute: + QCOMPARE(attr->count(), 36u); + break; + case QAttribute::VertexAttribute: + QCOMPARE(attr->count(), 24u); + break; + } + } + + file.close(); +} +#endif + QTEST_MAIN(tst_geometryloaders) #include "tst_geometryloaders.moc" |