diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2019-10-14 10:18:18 +0200 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2019-10-15 10:25:37 +0200 |
commit | 3c9a56d4e6ce94f0f6131574362fa1e43d9f85ff (patch) | |
tree | ca286be5ce2e82158e6fac71afbc1fa5a85896ff /tests | |
parent | a02a9b3671226f4c8e4636163ba76cf8e9a48b42 (diff) |
Add unit tests for KTX loading
Change-Id: I3e80497d107329f250bd524a02157c6246e36e68
Reviewed-by: Mike Krus <mike.krus@kdab.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/render/ktxtextures/data/16_16.png | bin | 0 -> 346 bytes | |||
-rw-r--r-- | tests/auto/render/ktxtextures/data/16_16_PNG_ASTC_7.KTX | bin | 0 -> 324 bytes | |||
-rw-r--r-- | tests/auto/render/ktxtextures/data/16_16_PNG_ASTC_8.KTX | bin | 0 -> 324 bytes | |||
-rw-r--r-- | tests/auto/render/ktxtextures/data/16_16_PNG_ETC2_RGBA_11.KTX | bin | 0 -> 324 bytes | |||
-rw-r--r-- | tests/auto/render/ktxtextures/data/16_16_PNG_ETC2_RGB_13.KTX | bin | 0 -> 196 bytes | |||
-rw-r--r-- | tests/auto/render/ktxtextures/data/16_16_PNG_ETC_RGB_12.KTX | bin | 0 -> 196 bytes | |||
-rw-r--r-- | tests/auto/render/ktxtextures/ktxtextures.pro | 39 | ||||
-rw-r--r-- | tests/auto/render/ktxtextures/tst_ktxtextures.cpp | 75 | ||||
-rw-r--r-- | tests/auto/render/render.pro | 1 |
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 Binary files differnew file mode 100644 index 000000000..aefb48dc4 --- /dev/null +++ b/tests/auto/render/ktxtextures/data/16_16.png 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 Binary files differnew file mode 100644 index 000000000..953f300ad --- /dev/null +++ b/tests/auto/render/ktxtextures/data/16_16_PNG_ASTC_7.KTX 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 Binary files differnew file mode 100644 index 000000000..4c23241e4 --- /dev/null +++ b/tests/auto/render/ktxtextures/data/16_16_PNG_ASTC_8.KTX 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 Binary files differnew file mode 100644 index 000000000..01646e99a --- /dev/null +++ b/tests/auto/render/ktxtextures/data/16_16_PNG_ETC2_RGBA_11.KTX 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 Binary files differnew file mode 100644 index 000000000..2d2efff1b --- /dev/null +++ b/tests/auto/render/ktxtextures/data/16_16_PNG_ETC2_RGB_13.KTX 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 Binary files differnew file mode 100644 index 000000000..15e30abc8 --- /dev/null +++ b/tests/auto/render/ktxtextures/data/16_16_PNG_ETC_RGB_12.KTX 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 \ |