summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2019-10-14 10:18:18 +0200
committerPaul Lemire <paul.lemire@kdab.com>2019-10-15 10:25:37 +0200
commit3c9a56d4e6ce94f0f6131574362fa1e43d9f85ff (patch)
treeca286be5ce2e82158e6fac71afbc1fa5a85896ff
parenta02a9b3671226f4c8e4636163ba76cf8e9a48b42 (diff)
Add unit tests for KTX loading
Change-Id: I3e80497d107329f250bd524a02157c6246e36e68 Reviewed-by: Mike Krus <mike.krus@kdab.com>
-rw-r--r--tests/auto/render/ktxtextures/data/16_16.pngbin0 -> 346 bytes
-rw-r--r--tests/auto/render/ktxtextures/data/16_16_PNG_ASTC_7.KTXbin0 -> 324 bytes
-rw-r--r--tests/auto/render/ktxtextures/data/16_16_PNG_ASTC_8.KTXbin0 -> 324 bytes
-rw-r--r--tests/auto/render/ktxtextures/data/16_16_PNG_ETC2_RGBA_11.KTXbin0 -> 324 bytes
-rw-r--r--tests/auto/render/ktxtextures/data/16_16_PNG_ETC2_RGB_13.KTXbin0 -> 196 bytes
-rw-r--r--tests/auto/render/ktxtextures/data/16_16_PNG_ETC_RGB_12.KTXbin0 -> 196 bytes
-rw-r--r--tests/auto/render/ktxtextures/ktxtextures.pro39
-rw-r--r--tests/auto/render/ktxtextures/tst_ktxtextures.cpp75
-rw-r--r--tests/auto/render/render.pro1
9 files changed, 115 insertions, 0 deletions
diff --git a/tests/auto/render/ktxtextures/data/16_16.png b/tests/auto/render/ktxtextures/data/16_16.png
new file mode 100644
index 000000000..aefb48dc4
--- /dev/null
+++ b/tests/auto/render/ktxtextures/data/16_16.png
Binary files differ
diff --git a/tests/auto/render/ktxtextures/data/16_16_PNG_ASTC_7.KTX b/tests/auto/render/ktxtextures/data/16_16_PNG_ASTC_7.KTX
new file mode 100644
index 000000000..953f300ad
--- /dev/null
+++ b/tests/auto/render/ktxtextures/data/16_16_PNG_ASTC_7.KTX
Binary files differ
diff --git a/tests/auto/render/ktxtextures/data/16_16_PNG_ASTC_8.KTX b/tests/auto/render/ktxtextures/data/16_16_PNG_ASTC_8.KTX
new file mode 100644
index 000000000..4c23241e4
--- /dev/null
+++ b/tests/auto/render/ktxtextures/data/16_16_PNG_ASTC_8.KTX
Binary files differ
diff --git a/tests/auto/render/ktxtextures/data/16_16_PNG_ETC2_RGBA_11.KTX b/tests/auto/render/ktxtextures/data/16_16_PNG_ETC2_RGBA_11.KTX
new file mode 100644
index 000000000..01646e99a
--- /dev/null
+++ b/tests/auto/render/ktxtextures/data/16_16_PNG_ETC2_RGBA_11.KTX
Binary files differ
diff --git a/tests/auto/render/ktxtextures/data/16_16_PNG_ETC2_RGB_13.KTX b/tests/auto/render/ktxtextures/data/16_16_PNG_ETC2_RGB_13.KTX
new file mode 100644
index 000000000..2d2efff1b
--- /dev/null
+++ b/tests/auto/render/ktxtextures/data/16_16_PNG_ETC2_RGB_13.KTX
Binary files differ
diff --git a/tests/auto/render/ktxtextures/data/16_16_PNG_ETC_RGB_12.KTX b/tests/auto/render/ktxtextures/data/16_16_PNG_ETC_RGB_12.KTX
new file mode 100644
index 000000000..15e30abc8
--- /dev/null
+++ b/tests/auto/render/ktxtextures/data/16_16_PNG_ETC_RGB_12.KTX
Binary files differ
diff --git a/tests/auto/render/ktxtextures/ktxtextures.pro b/tests/auto/render/ktxtextures/ktxtextures.pro
new file mode 100644
index 000000000..9e7affb5e
--- /dev/null
+++ b/tests/auto/render/ktxtextures/ktxtextures.pro
@@ -0,0 +1,39 @@
+TEMPLATE = app
+
+TARGET = tst_ktxtextures
+
+CONFIG += testcase
+
+SOURCES += tst_ktxtextures.cpp
+
+OTHER_FILES = \
+ data/16x16x1-1-bc1.dds \
+ data/16x16x1-1-bc1-dx10.dds \
+ data/16x16x1-1-bc1-nomips.dds \
+ data/16x16x1-1-bc1-nomips-dx10.dds \
+ data/16x16x1-1-bc3.dds \
+ data/16x16x1-1-bc3-dx10.dds \
+ data/16x16x1-1-bc3-nomips.dds \
+ data/16x16x1-1-bc3-nomips-dx10.dds \
+ data/16x16x1-1-lumi.dds \
+ data/16x16x1-1-lumi-nomips.dds \
+ data/16x16x1-1-rgb.dds \
+ data/16x16x1-1-rgb-nomips.dds \
+ data/16x16x1-6-bc1.dds \
+ data/16x16x1-6-bc1-dx10.dds \
+ data/16x16x1-6-bc1-nomips.dds \
+ data/16x16x1-6-bc1-nomips-dx10.dds \
+ data/16x16x1-6-bc3.dds \
+ data/16x16x1-6-bc3-dx10.dds \
+ data/16x16x1-6-bc3-nomips.dds \
+ data/16x16x1-6-bc3-nomips-dx10.dds \
+ data/16x16x1-6-lumi.dds \
+ data/16x16x1-6-lumi-nomips.dds \
+ data/16x16x1-6-rgb.dds \
+ data/16x16x1-6-rgb-nomips.dds \
+ data/16x16-etc1.pkm \
+ data/16x16-etc2.pkm
+
+TESTDATA = data/*
+
+QT += core-private 3dcore 3dcore-private 3drender 3drender-private testlib
diff --git a/tests/auto/render/ktxtextures/tst_ktxtextures.cpp b/tests/auto/render/ktxtextures/tst_ktxtextures.cpp
new file mode 100644
index 000000000..57ccd3652
--- /dev/null
+++ b/tests/auto/render/ktxtextures/tst_ktxtextures.cpp
@@ -0,0 +1,75 @@
+/****************************************************************************
+**
+** Copyright (C) 2019 Klaralvdalens Datakonsult AB (KDAB).
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt3D module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtTest/QTest>
+#include <Qt3DRender/qtextureimagedata.h>
+#include <Qt3DRender/private/qtexture_p.h>
+
+class tst_KtxTextures : public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void ktxImageData();
+};
+
+void tst_KtxTextures::ktxImageData()
+{
+ const struct TextureInfo {
+ const char *source;
+ int width;
+ int height;
+ int depth;
+ int faces;
+ int mipmapLevels;
+ QOpenGLTexture::TextureFormat format;
+ } textures[] = {
+ { "data/16_16_PNG_ASTC_7.KTX", 16, 16, 1, 1, 1, QOpenGLTexture::RGBA_ASTC_4x4 },
+ { "data/16_16_PNG_ASTC_8.KTX", 16, 16, 1, 1, 1, QOpenGLTexture::RGBA_ASTC_4x4 },
+ { "data/16_16_PNG_ETC2_RGB_13.KTX", 16, 16, 1, 1, 1, QOpenGLTexture::RGB8_ETC2 },
+ { "data/16_16_PNG_ETC2_RGBA_11.KTX", 16, 16, 1, 1, 1, QOpenGLTexture::RGBA8_ETC2_EAC },
+ { "data/16_16_PNG_ETC_RGB_12.KTX", 16, 16, 1, 1, 1, QOpenGLTexture::RGB8_ETC1 },
+ };
+
+ for (unsigned i = 0; i < sizeof(textures)/sizeof(*textures); i++) {
+ const TextureInfo *texture = &textures[i];
+
+ Qt3DRender::QTextureImageDataPtr data = Qt3DRender::TextureLoadingHelper::loadTextureData(QUrl::fromLocalFile(QFINDTESTDATA(texture->source)), true, false);
+
+ QVERIFY(data);
+ QCOMPARE(data->width(), texture->width);
+ QCOMPARE(data->height(), texture->height);
+ QCOMPARE(data->faces(), texture->faces);
+ QCOMPARE(data->mipLevels(), texture->mipmapLevels);
+ QCOMPARE(data->format(), texture->format);
+ }
+}
+
+QTEST_APPLESS_MAIN(tst_KtxTextures)
+
+#include "tst_ktxtextures.moc"
diff --git a/tests/auto/render/render.pro b/tests/auto/render/render.pro
index 786d8050f..180ff7ac1 100644
--- a/tests/auto/render/render.pro
+++ b/tests/auto/render/render.pro
@@ -41,6 +41,7 @@ qtConfig(private_tests) {
# qboundingvolumedebug \
# boundingvolumedebug \
ddstextures \
+ ktxtextures \
shadercache \
layerfiltering \
filterentitybycomponent \