diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2017-09-10 11:49:46 +0100 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2017-10-03 10:38:01 +0000 |
commit | 4f2ff902545842bc715a936ff0c70b3ca3ce0cc9 (patch) | |
tree | ad82c71994c746c7ae5e7a79f894c8b00db0b586 | |
parent | 733afa3b259f78b81145ed2d1a8b8cc54184c4aa (diff) |
Share the mesh in bigscene-cpp
No point loading the same data 1k times. Shaves 35% off the time from
application start to first frame being complete.
Change-Id: I8cd7c8a5aa377c0663c03e35d7a4c03f50b052f6
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
-rw-r--r-- | tests/manual/bigscene-cpp/entity.cpp | 7 | ||||
-rw-r--r-- | tests/manual/bigscene-cpp/entity.h | 5 | ||||
-rw-r--r-- | tests/manual/bigscene-cpp/main.cpp | 8 |
3 files changed, 12 insertions, 8 deletions
diff --git a/tests/manual/bigscene-cpp/entity.cpp b/tests/manual/bigscene-cpp/entity.cpp index c3786275e..6cd969777 100644 --- a/tests/manual/bigscene-cpp/entity.cpp +++ b/tests/manual/bigscene-cpp/entity.cpp @@ -58,15 +58,8 @@ Entity::Entity(Qt3DCore::QNode *parent) : QEntity(parent) , m_transform(new Qt3DCore::QTransform()) - , m_mesh(new Qt3DExtras::QCylinderMesh()) , m_material(new Qt3DExtras::QPhongMaterial()) { - m_mesh->setRings(50.0f); - m_mesh->setSlices(30.0f); - m_mesh->setRadius(2.5f); - m_mesh->setLength(5.0f); - - addComponent(m_mesh); addComponent(m_transform); addComponent(m_material); } diff --git a/tests/manual/bigscene-cpp/entity.h b/tests/manual/bigscene-cpp/entity.h index 04dcbbcb3..6c2310a35 100644 --- a/tests/manual/bigscene-cpp/entity.h +++ b/tests/manual/bigscene-cpp/entity.h @@ -61,6 +61,10 @@ namespace Qt3DCore { class QTransform; } +namespace Qt3DRender { +class QGeometryRenderer; +} + namespace Qt3DExtras { class QCylinderMesh; class QPhongMaterial; @@ -101,7 +105,6 @@ private: private: Qt3DCore::QTransform *m_transform; - Qt3DExtras::QCylinderMesh *m_mesh; Qt3DExtras::QPhongMaterial *m_material; float m_theta; float m_phi; diff --git a/tests/manual/bigscene-cpp/main.cpp b/tests/manual/bigscene-cpp/main.cpp index 791aeb19d..cf893e051 100644 --- a/tests/manual/bigscene-cpp/main.cpp +++ b/tests/manual/bigscene-cpp/main.cpp @@ -81,6 +81,13 @@ int main(int ac, char **av) QEntity *root = new QEntity(); + // Mesh + auto *mesh = new Qt3DExtras::QCylinderMesh(root); + mesh->setRings(50.0f); + mesh->setSlices(30.0f); + mesh->setRadius(2.5f); + mesh->setLength(5.0f); + // Camera QCamera *cameraEntity = view.camera(); cameraEntity->lens()->setPerspectiveProjection(45.0f, 16.0f/9.0f, 0.1f, 1000.0f); @@ -99,6 +106,7 @@ int main(int ac, char **av) // Scene for (int i = 0; i < max; i++) { Entity *e = new Entity(); + e->addComponent(mesh); const float angle = M_PI * 2.0f * i * det * 10.; e->setDiffuseColor(QColor(qFabs(qCos(angle)) * 255, 204, 75)); |