Browse Source

Using icosahedron primitive data in MeshBuilderBenchmark.

vectorfields
Vladimír Vondruš 15 years ago
parent
commit
9fd88b700a
  1. 1
      src/Test/CMakeLists.txt
  2. 47
      src/Test/MeshBuilderBenchmark.cpp

1
src/Test/CMakeLists.txt

@ -3,3 +3,4 @@ corrade_add_test(CameraTest CameraTest.h CameraTest.cpp Magnum)
corrade_add_test(SceneTest SceneTest.h SceneTest.cpp Magnum)
corrade_add_test(MeshBuilderTest MeshBuilderTest.h MeshBuilderTest.cpp Magnum)
corrade_add_test(MeshBuilderBenchmark MeshBuilderBenchmark.h MeshBuilderBenchmark.cpp Magnum)
target_link_libraries(MeshBuilderBenchmark ${MAGNUM_PRIMITIVES_LIBRARY})

47
src/Test/MeshBuilderBenchmark.cpp

@ -19,55 +19,16 @@
#include "MeshBuilder.h"
#include "Magnum.h"
#include "Primitives/Icosphere.h"
QTEST_APPLESS_MAIN(Magnum::Test::MeshBuilderBenchmark)
namespace Magnum { namespace Test {
/* Vertices = normals */
static const Vector4 icoVertices[] = {
Vector4(0, -0.525731f, 0.850651f),
Vector4(0.850651f, 0, 0.525731f),
Vector4(0.850651f, 0, -0.525731f),
Vector4(-0.850651f, 0, -0.525731f),
Vector4(-0.850651f, 0, 0.525731f),
Vector4(-0.525731f, 0.850651f, 0),
Vector4(0.525731f, 0.850651f, 0),
Vector4(0.525731f, -0.850651f, 0),
Vector4(-0.525731f, -0.850651f, 0),
Vector4(0, -0.525731f, -0.850651f),
Vector4(0, 0.525731f, -0.850651f),
Vector4(0, 0.525731f, 0.850651f),
};
/* Vertex indices */
static const GLubyte icoIndices[] = {
1, 2, 6,
1, 7, 2,
3, 4, 5,
4, 3, 8,
6, 5, 11,
5, 6, 10,
9, 10, 2,
10, 9, 3,
7, 8, 9,
8, 7, 0,
11, 0, 1,
0, 11, 4,
6, 2, 10,
1, 6, 11,
3, 5, 10,
5, 4, 11,
2, 7, 9,
7, 1, 0,
3, 9, 8,
4, 8, 0
};
void MeshBuilderBenchmark::subdivide() {
QBENCHMARK {
MeshBuilder<Vector4> builder;
builder.setData(icoVertices, icoIndices, 12, 60);
builder.setData(Primitives::Icosahedron::vertices, Primitives::Icosahedron::indices, 12, 60);
/* Subdivide 5 times */
builder.subdivide(interpolator);
@ -81,7 +42,7 @@ void MeshBuilderBenchmark::subdivide() {
void MeshBuilderBenchmark::subdivideAndCleanMeshAfter() {
QBENCHMARK {
MeshBuilder<Vector4> builder;
builder.setData(icoVertices, icoIndices, 12, 60);
builder.setData(Primitives::Icosahedron::vertices, Primitives::Icosahedron::indices, 12, 60);
/* Subdivide 5 times */
builder.subdivide(interpolator);
@ -97,7 +58,7 @@ void MeshBuilderBenchmark::subdivideAndCleanMeshAfter() {
void MeshBuilderBenchmark::subdivideAndCleanMeshBetween() {
QBENCHMARK {
MeshBuilder<Vector4> builder;
builder.setData(icoVertices, icoIndices, 12, 60);
builder.setData(Primitives::Icosahedron::vertices, Primitives::Icosahedron::indices, 12, 60);
/* Subdivide 5 times */
builder.subdivide(interpolator);

Loading…
Cancel
Save