Browse Source

MeshTools: test that owned() works with impl-specific vert formats.

Yes it does!
pull/549/head
Vladimír Vondruš 4 years ago
parent
commit
0119d614a5
  1. 19
      src/Magnum/MeshTools/Test/ReferenceTest.cpp

19
src/Magnum/MeshTools/Test/ReferenceTest.cpp

@ -51,6 +51,7 @@ struct ReferenceTest: TestSuite::Tester {
void ownedNoIndexData();
void ownedNoAttributeVertexData();
void ownedArrayAttribute();
void ownedImplementationSpecificVertexFormat();
void ownedRvaluePassthrough();
void ownedRvaluePartialPassthrough();
};
@ -67,6 +68,7 @@ ReferenceTest::ReferenceTest() {
&ReferenceTest::ownedNoIndexData,
&ReferenceTest::ownedNoAttributeVertexData,
&ReferenceTest::ownedArrayAttribute,
&ReferenceTest::ownedImplementationSpecificVertexFormat,
&ReferenceTest::ownedRvaluePassthrough,
&ReferenceTest::ownedRvaluePartialPassthrough});
}
@ -216,6 +218,23 @@ void ReferenceTest::ownedArrayAttribute() {
CORRADE_COMPARE(owned.attributeArraySize(0), 3);
}
void ReferenceTest::ownedImplementationSpecificVertexFormat() {
const Int vertexData[13]{};
/* Verify that custom vertex formats are propagated without a problem */
Trade::MeshData weirdThing{MeshPrimitive::Faces,
{}, vertexData,
{Trade::MeshAttributeData{Trade::meshAttributeCustom(42), vertexFormatWrap(0xcaca), Containers::arrayView(vertexData)}}};
Trade::MeshData owned = MeshTools::owned(weirdThing);
CORRADE_COMPARE(owned.vertexCount(), 13);
CORRADE_COMPARE(owned.attributeCount(), 1);
CORRADE_COMPARE(owned.attributeArraySize(0), 0);
CORRADE_COMPARE(owned.attributeFormat(0), vertexFormatWrap(0xcaca));
CORRADE_COMPARE_AS((Containers::arrayCast<1, const Int>(owned.attribute(0))),
Containers::arrayView(vertexData),
TestSuite::Compare::Container);
}
void ReferenceTest::ownedRvaluePassthrough() {
Trade::MeshData circle = Primitives::grid3DSolid({15, 3}, Primitives::GridFlag::Tangents);
CORRADE_COMPARE(circle.indexDataFlags(), Trade::DataFlag::Mutable|Trade::DataFlag::Owned);

Loading…
Cancel
Save