From 7c17557d157db30505855ecb1c627c50e0f71ddb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Tue, 18 Jan 2022 20:19:53 +0100 Subject: [PATCH] MeshTools: test impl-specific vert fmats directly in interleave() also. Hrm th mssags r gttng t lng t ft on a single line. --- src/Magnum/MeshTools/Test/InterleaveTest.cpp | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/Magnum/MeshTools/Test/InterleaveTest.cpp b/src/Magnum/MeshTools/Test/InterleaveTest.cpp index 97d117baa..da3fb851b 100644 --- a/src/Magnum/MeshTools/Test/InterleaveTest.cpp +++ b/src/Magnum/MeshTools/Test/InterleaveTest.cpp @@ -161,9 +161,12 @@ InterleaveTest::InterleaveTest() { &InterleaveTest::interleaveMeshDataExtraOriginalEmpty, &InterleaveTest::interleaveMeshDataExtraWrongCount, &InterleaveTest::interleaveMeshDataExtraOffsetOnly, - &InterleaveTest::interleaveMeshDataExtraImplementationSpecificVertexFormat, - &InterleaveTest::interleaveMeshDataAlreadyInterleavedMove, - &InterleaveTest::interleaveMeshDataAlreadyInterleavedMoveNonOwned, + &InterleaveTest::interleaveMeshDataExtraImplementationSpecificVertexFormat}); + + addInstancedTests({&InterleaveTest::interleaveMeshDataAlreadyInterleavedMove}, + Containers::arraySize(AlreadyInterleavedData)); + + addTests({&InterleaveTest::interleaveMeshDataAlreadyInterleavedMoveNonOwned, &InterleaveTest::interleaveMeshDataNothing}); } @@ -1233,6 +1236,9 @@ void InterleaveTest::interleaveMeshDataExtraImplementationSpecificVertexFormat() } void InterleaveTest::interleaveMeshDataAlreadyInterleavedMove() { + auto&& data = AlreadyInterleavedData[testCaseInstanceId()]; + setTestCaseDescription(data.name); + Containers::Array indexData{4}; auto indexView = Containers::arrayCast(indexData); Containers::Array vertexData{3*24}; @@ -1242,17 +1248,17 @@ void InterleaveTest::interleaveMeshDataAlreadyInterleavedMove() { reinterpret_cast(vertexData.data() + 10), 3, 24}; auto attributeData = Containers::array({ Trade::MeshAttributeData{Trade::MeshAttribute::Position, positionView}, - Trade::MeshAttributeData{Trade::MeshAttribute::Normal, normalView} + Trade::MeshAttributeData{Trade::MeshAttribute::Normal, data.vertexFormat, normalView} }); const Trade::MeshAttributeData* attributePointer = attributeData; - Trade::MeshData data{MeshPrimitive::TriangleFan, + Trade::MeshData mesh{MeshPrimitive::TriangleFan, std::move(indexData), Trade::MeshIndexData{indexView}, std::move(vertexData), std::move(attributeData)}; - CORRADE_VERIFY(MeshTools::isInterleaved(data)); + CORRADE_VERIFY(MeshTools::isInterleaved(mesh)); /* {} just to cover the initializer_list overload :P */ - Trade::MeshData interleaved = MeshTools::interleave(std::move(data), {}); + Trade::MeshData interleaved = MeshTools::interleave(std::move(mesh), {}); CORRADE_VERIFY(MeshTools::isInterleaved(interleaved)); CORRADE_COMPARE(interleaved.indexCount(), 2); CORRADE_COMPARE(interleaved.attributeCount(), 2);