more work on parallel dispatching of simulation islands
This commit is contained in:
@@ -179,7 +179,7 @@ void CollisionDispatcher::ReleaseManifoldResult(ManifoldResult*)
|
||||
}
|
||||
|
||||
|
||||
void CollisionDispatcher::DispatchAllCollisionPairs(OverlappingPairCache* pairCache,DispatcherInfo& dispatchInfo)
|
||||
void CollisionDispatcher::DispatchAllCollisionPairs(BroadphasePair* pairs,int numPairs,DispatcherInfo& dispatchInfo)
|
||||
{
|
||||
//m_blockedForChanges = true;
|
||||
|
||||
@@ -187,12 +187,12 @@ void CollisionDispatcher::DispatchAllCollisionPairs(OverlappingPairCache* pairCa
|
||||
|
||||
int dispatcherId = GetUniqueId();
|
||||
|
||||
pairCache->RefreshOverlappingPairs();
|
||||
|
||||
|
||||
for (i=0;i<pairCache->GetNumOverlappingPairs();i++)
|
||||
for (i=0;i<numPairs;i++)
|
||||
{
|
||||
|
||||
BroadphasePair& pair = pairCache->GetOverlappingPair(i);
|
||||
BroadphasePair& pair = pairs[i];
|
||||
|
||||
if (dispatcherId>= 0)
|
||||
{
|
||||
|
||||
@@ -103,7 +103,7 @@ public:
|
||||
|
||||
virtual int GetUniqueId() { return RIGIDBODY_DISPATCHER;}
|
||||
|
||||
virtual void DispatchAllCollisionPairs(OverlappingPairCache* pairCache,DispatcherInfo& dispatchInfo);
|
||||
virtual void DispatchAllCollisionPairs(BroadphasePair* pairs,int numPairs,DispatcherInfo& dispatchInfo);
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -104,7 +104,7 @@ void CollisionWorld::PerformDiscreteCollisionDetection()
|
||||
|
||||
Dispatcher* dispatcher = GetDispatcher();
|
||||
if (dispatcher)
|
||||
dispatcher->DispatchAllCollisionPairs(m_pairCache,dispatchInfo);
|
||||
dispatcher->DispatchAllCollisionPairs(&m_pairCache->GetOverlappingPair(0),m_pairCache->GetNumOverlappingPairs(),dispatchInfo);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -84,14 +84,14 @@ class CollisionWorld
|
||||
|
||||
std::vector<CollisionObject*> m_collisionObjects;
|
||||
|
||||
CollisionDispatcher* m_dispatcher1;
|
||||
Dispatcher* m_dispatcher1;
|
||||
|
||||
OverlappingPairCache* m_pairCache;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
CollisionWorld(CollisionDispatcher* dispatcher,OverlappingPairCache* pairCache)
|
||||
CollisionWorld(Dispatcher* dispatcher,OverlappingPairCache* pairCache)
|
||||
:m_dispatcher1(dispatcher),
|
||||
m_pairCache(pairCache)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user