From 16e080e2529453fa6a42a5460639ca4a190f8bfb Mon Sep 17 00:00:00 2001 From: scrawl Date: Sun, 7 Jun 2015 17:00:00 +0200 Subject: [PATCH] Fix the physics debug drawer lagging a frame behind --- apps/openmw/mwphysics/physicssystem.cpp | 3 +++ apps/openmw/mwphysics/physicssystem.hpp | 1 + apps/openmw/mwworld/worldimp.cpp | 2 ++ 3 files changed, 6 insertions(+) diff --git a/apps/openmw/mwphysics/physicssystem.cpp b/apps/openmw/mwphysics/physicssystem.cpp index c7df22aef6..b7d02e1591 100644 --- a/apps/openmw/mwphysics/physicssystem.cpp +++ b/apps/openmw/mwphysics/physicssystem.cpp @@ -1175,7 +1175,10 @@ namespace MWPhysics CProfileManager::Reset(); CProfileManager::Increment_Frame_Counter(); + } + void PhysicsSystem::debugDraw() + { if (mDebugDrawer.get()) mDebugDrawer->step(); } diff --git a/apps/openmw/mwphysics/physicssystem.hpp b/apps/openmw/mwphysics/physicssystem.hpp index 8cb31ed259..c3b22c3854 100644 --- a/apps/openmw/mwphysics/physicssystem.hpp +++ b/apps/openmw/mwphysics/physicssystem.hpp @@ -78,6 +78,7 @@ namespace MWPhysics bool toggleCollisionMode(); void stepSimulation(float dt); + void debugDraw(); std::vector getCollisions(const MWWorld::Ptr &ptr, int collisionGroup, int collisionMask); ///< get handles this object collides with osg::Vec3f traceDown(const MWWorld::Ptr &ptr, float maxHeight); diff --git a/apps/openmw/mwworld/worldimp.cpp b/apps/openmw/mwworld/worldimp.cpp index a2e66a96fb..7b4c33fd87 100644 --- a/apps/openmw/mwworld/worldimp.cpp +++ b/apps/openmw/mwworld/worldimp.cpp @@ -1392,6 +1392,8 @@ namespace MWWorld } if(player != results.end()) moveObjectImp(player->first, player->second.x(), player->second.y(), player->second.z()); + + mPhysics->debugDraw(); } bool World::castRay (float x1, float y1, float z1, float x2, float y2, float z2)