Browse Source

MeshTools: test impl-specific vert fmats directly in interleave() also.

Hrm th mssags r gttng t lng t ft on a single line.
pull/547/head
Vladimír Vondruš 4 years ago
parent
commit
7c17557d15
  1. 20
      src/Magnum/MeshTools/Test/InterleaveTest.cpp

20
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<char> indexData{4};
auto indexView = Containers::arrayCast<UnsignedShort>(indexData);
Containers::Array<char> vertexData{3*24};
@ -1242,17 +1248,17 @@ void InterleaveTest::interleaveMeshDataAlreadyInterleavedMove() {
reinterpret_cast<Vector3*>(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);

Loading…
Cancel
Save