summaryrefslogtreecommitdiffstats
path: root/tests/auto/render/geometryloaders/tst_geometryloaders.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/render/geometryloaders/tst_geometryloaders.cpp')
-rw-r--r--tests/auto/render/geometryloaders/tst_geometryloaders.cpp46
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"