File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -9,6 +9,7 @@ class EntityManager {
99private:
1010 std::vector<std::unique_ptr<Entity>> entities;
1111 std::unordered_map<std::string, Entity*> entityMap;
12+ mutable std::vector<Transform> cachedTransforms;
1213
1314public:
1415 // Add entity to the scene
@@ -38,13 +39,13 @@ class EntityManager {
3839 }
3940
4041 // Get all transforms for acceleration structure
41- std::vector<Transform> getTransforms () const {
42- std::vector<Transform> transforms ;
43- transforms .reserve (entities.size ());
42+ const std::vector<Transform>& getTransforms () const {
43+ cachedTransforms. clear () ;
44+ cachedTransforms .reserve (entities.size ());
4445 for (const auto & entity : entities) {
45- transforms .push_back (entity->transform );
46+ cachedTransforms .push_back (entity->transform );
4647 }
47- return transforms ;
48+ return cachedTransforms ;
4849 }
4950
5051 // Get entity by name
Original file line number Diff line number Diff line change @@ -835,7 +835,7 @@ class RacingEngine {
835835
836836 // Prepare TLAS instance data (CPU-side, before command buffer recording)
837837 if (entityManager.countDynamic () > 0 ) {
838- auto transforms = entityManager.getTransforms ();
838+ const auto & transforms = entityManager.getTransforms ();
839839 acceleration.prepareInstanceData (device, transforms);
840840 }
841841
You can’t perform that action at this time.
0 commit comments