From 9d1c881f491363f330284ddb177cbee5f3e9952d Mon Sep 17 00:00:00 2001 From: Eirik Aavitsland Date: Wed, 15 Aug 2018 10:58:12 +0200 Subject: Texture file support: add mipmap reading to ktx handler Change-Id: Ic2c10b3e64d63d2272a8a3922d2b3f99dfd45bdb Reviewed-by: Laszlo Agocs --- .../util/qtexturefilereader/qtexturefilereader.qrc | 1 + .../qtexturefilereader/texturefiles/car_mips.ktx | Bin 0 -> 8088 bytes .../qtexturefilereader/tst_qtexturefilereader.cpp | 36 ++++++++++++++------- 3 files changed, 26 insertions(+), 11 deletions(-) create mode 100644 tests/auto/gui/util/qtexturefilereader/texturefiles/car_mips.ktx (limited to 'tests/auto/gui') diff --git a/tests/auto/gui/util/qtexturefilereader/qtexturefilereader.qrc b/tests/auto/gui/util/qtexturefilereader/qtexturefilereader.qrc index 74f33d57ad..ab882b5db2 100644 --- a/tests/auto/gui/util/qtexturefilereader/qtexturefilereader.qrc +++ b/tests/auto/gui/util/qtexturefilereader/qtexturefilereader.qrc @@ -2,5 +2,6 @@ texturefiles/car.ktx texturefiles/pattern.pkm + texturefiles/car_mips.ktx diff --git a/tests/auto/gui/util/qtexturefilereader/texturefiles/car_mips.ktx b/tests/auto/gui/util/qtexturefilereader/texturefiles/car_mips.ktx new file mode 100644 index 0000000000..82822e6c0b Binary files /dev/null and b/tests/auto/gui/util/qtexturefilereader/texturefiles/car_mips.ktx differ diff --git a/tests/auto/gui/util/qtexturefilereader/tst_qtexturefilereader.cpp b/tests/auto/gui/util/qtexturefilereader/tst_qtexturefilereader.cpp index f480184067..9ff4f0ccf2 100644 --- a/tests/auto/gui/util/qtexturefilereader/tst_qtexturefilereader.cpp +++ b/tests/auto/gui/util/qtexturefilereader/tst_qtexturefilereader.cpp @@ -44,26 +44,38 @@ void tst_qtexturefilereader::checkHandlers_data() QTest::addColumn("size"); QTest::addColumn("glFormat"); QTest::addColumn("glInternalFormat"); - // todo: glBaseInternalFormat + QTest::addColumn("glBaseInternalFormat"); QTest::addColumn("levels"); - QTest::addColumn("dataOffset"); - QTest::addColumn("dataLength"); + QTest::addColumn>("dataOffsets"); + QTest::addColumn>("dataLengths"); QTest::addRow("pattern.pkm") << QStringLiteral(":/texturefiles/pattern.pkm") << QSize(64, 64) << quint32(0x0) << quint32(0x8d64) + << quint32(0x0) << 1 - << 16 - << 2048; + << (QList() << 16) + << (QList() << 2048); QTest::addRow("car.ktx") << QStringLiteral(":/texturefiles/car.ktx") << QSize(146, 80) << quint32(0x0) << quint32(0x9278) + << quint32(0x1908) << 1 - << 68 - << 11840; + << (QList() << 68) + << (QList() << 11840); + + QTest::addRow("car_mips.ktx") << QStringLiteral(":/texturefiles/car_mips.ktx") + << QSize(146, 80) + << quint32(0x0) + << quint32(0x9274) + << quint32(0x1907) + << 8 + << (QList() << 68 << 5992 << 7516 << 7880 << 8004 << 8056 << 8068 << 8080) + << (QList() << 5920 << 1520 << 360 << 120 << 48 << 8 << 8 << 8); + } void tst_qtexturefilereader::checkHandlers() @@ -73,8 +85,8 @@ void tst_qtexturefilereader::checkHandlers() QFETCH(quint32, glFormat); QFETCH(quint32, glInternalFormat); QFETCH(int, levels); - QFETCH(int, dataOffset); - QFETCH(int, dataLength); + QFETCH(QList, dataOffsets); + QFETCH(QList, dataLengths); QFile f(fileName); QVERIFY(f.open(QIODevice::ReadOnly)); @@ -88,8 +100,10 @@ void tst_qtexturefilereader::checkHandlers() QCOMPARE(tex.glFormat(), glFormat); QCOMPARE(tex.glInternalFormat(), glInternalFormat); QCOMPARE(tex.numLevels(), levels); - QCOMPARE(tex.dataOffset(), dataOffset); - QCOMPARE(tex.dataLength(), dataLength); + for (int i = 0; i < tex.numLevels(); i++) { + QCOMPARE(tex.dataOffset(i), dataOffsets.at(i)); + QCOMPARE(tex.dataLength(i), dataLengths.at(i)); + } } QTEST_MAIN(tst_qtexturefilereader) -- cgit v1.2.3