First commit of 2008, Happy New Year!
Add option to compile without btClock and without profiling: comment out USE_BT_CLOCK, and #define BT_NO_PROFILE Fixed typo/case in #include "LinearMath/btQuickProf.h", in SpuParallelSolver.cpp Removed unnecessary files from libxml CMakeLists.txt
This commit is contained in:
@@ -83,7 +83,9 @@ DemoApplication* CreatDemo(btDemoEntry* entry)
|
|||||||
demo->getDynamicsWorld()->setDebugDrawer(&gDebugDrawer);
|
demo->getDynamicsWorld()->setDebugDrawer(&gDebugDrawer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef BT_NO_PROFILE
|
||||||
CProfileManager::Reset();
|
CProfileManager::Reset();
|
||||||
|
#endif //BT_NO_PROFILE
|
||||||
|
|
||||||
return demo;
|
return demo;
|
||||||
|
|
||||||
|
|||||||
@@ -37,8 +37,7 @@ void BasicDemo::clientMoveAndDisplay()
|
|||||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
|
|
||||||
//simple dynamics world doesn't handle fixed-time-stepping
|
//simple dynamics world doesn't handle fixed-time-stepping
|
||||||
float ms = m_clock.getTimeMicroseconds();
|
float ms = getDeltaTimeMicroseconds();
|
||||||
m_clock.reset();
|
|
||||||
|
|
||||||
///step the simulation
|
///step the simulation
|
||||||
if (m_dynamicsWorld)
|
if (m_dynamicsWorld)
|
||||||
|
|||||||
@@ -212,8 +212,7 @@ void BspDemo::initPhysics(char* bspfilename)
|
|||||||
void BspDemo::clientMoveAndDisplay()
|
void BspDemo::clientMoveAndDisplay()
|
||||||
{
|
{
|
||||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
float dt = m_clock.getTimeMicroseconds() * 0.000001f;
|
float dt = getDeltaTimeMicroseconds() * 0.000001f;
|
||||||
m_clock.reset();
|
|
||||||
|
|
||||||
m_dynamicsWorld->stepSimulation(dt);
|
m_dynamicsWorld->stepSimulation(dt);
|
||||||
|
|
||||||
|
|||||||
@@ -226,8 +226,8 @@ void CcdPhysicsDemo::clientMoveAndDisplay()
|
|||||||
#endif //USE_KINEMATIC_GROUND
|
#endif //USE_KINEMATIC_GROUND
|
||||||
|
|
||||||
|
|
||||||
float dt = m_clock.getTimeMicroseconds() * 0.000001f;
|
float dt = getDeltaTimeMicroseconds() * 0.000001f;
|
||||||
m_clock.reset();
|
|
||||||
// printf("dt = %f: ",dt);
|
// printf("dt = %f: ",dt);
|
||||||
|
|
||||||
if (m_dynamicsWorld)
|
if (m_dynamicsWorld)
|
||||||
|
|||||||
@@ -208,8 +208,7 @@ void ColladaDemo::clientMoveAndDisplay()
|
|||||||
{
|
{
|
||||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
|
|
||||||
float dt = m_clock.getTimeMicroseconds() * 0.000001f;
|
float dt = getDeltaTimeMicroseconds() * 0.000001f;
|
||||||
m_clock.reset();
|
|
||||||
|
|
||||||
m_dynamicsWorld->stepSimulation(dt);
|
m_dynamicsWorld->stepSimulation(dt);
|
||||||
|
|
||||||
|
|||||||
@@ -50,7 +50,9 @@ public:
|
|||||||
int min_ms;
|
int min_ms;
|
||||||
int max_ms;
|
int max_ms;
|
||||||
|
|
||||||
|
#ifdef USE_BT_CLOCK
|
||||||
btClock frame_timer;
|
btClock frame_timer;
|
||||||
|
#endif //USE_BT_CLOCK
|
||||||
|
|
||||||
btScalar dx;
|
btScalar dx;
|
||||||
btScalar min_x;
|
btScalar min_x;
|
||||||
@@ -146,7 +148,9 @@ public:
|
|||||||
|
|
||||||
void cast (btCollisionWorld* cw)
|
void cast (btCollisionWorld* cw)
|
||||||
{
|
{
|
||||||
|
#ifdef USE_BT_CLOCK
|
||||||
frame_timer.reset ();
|
frame_timer.reset ();
|
||||||
|
#endif //USE_BT_CLOCK
|
||||||
for (int i = 0; i < NUMRAYS_IN_BAR; i++)
|
for (int i = 0; i < NUMRAYS_IN_BAR; i++)
|
||||||
{
|
{
|
||||||
btCollisionWorld::ClosestConvexResultCallback cb(source[i], dest[i]);
|
btCollisionWorld::ClosestConvexResultCallback cb(source[i], dest[i]);
|
||||||
@@ -165,7 +169,9 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
#ifdef USE_BT_CLOCK
|
||||||
ms += frame_timer.getTimeMilliseconds ();
|
ms += frame_timer.getTimeMilliseconds ();
|
||||||
|
#endif //USE_BT_CLOCK
|
||||||
frame_counter++;
|
frame_counter++;
|
||||||
if (frame_counter > 50)
|
if (frame_counter > 50)
|
||||||
{
|
{
|
||||||
@@ -359,8 +365,7 @@ void ConcaveConvexcastDemo::clientMoveAndDisplay()
|
|||||||
{
|
{
|
||||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
|
|
||||||
float dt = m_clock.getTimeMicroseconds() * 0.000001f;
|
float dt = getDeltaTimeMicroseconds() * 0.000001f;
|
||||||
m_clock.reset();
|
|
||||||
|
|
||||||
if (m_animatedMesh)
|
if (m_animatedMesh)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -308,8 +308,7 @@ void ConcaveDemo::clientMoveAndDisplay()
|
|||||||
{
|
{
|
||||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
|
|
||||||
float dt = m_clock.getTimeMicroseconds() * 0.000001f;
|
float dt = getDeltaTimeMicroseconds() * 0.000001f;
|
||||||
m_clock.reset();
|
|
||||||
|
|
||||||
if (m_animatedMesh)
|
if (m_animatedMesh)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -48,7 +48,9 @@ public:
|
|||||||
int min_ms;
|
int min_ms;
|
||||||
int max_ms;
|
int max_ms;
|
||||||
|
|
||||||
|
#ifdef USE_BT_CLOCK
|
||||||
btClock frame_timer;
|
btClock frame_timer;
|
||||||
|
#endif //USE_BT_CLOCK
|
||||||
|
|
||||||
btScalar dx;
|
btScalar dx;
|
||||||
btScalar min_x;
|
btScalar min_x;
|
||||||
@@ -137,7 +139,10 @@ public:
|
|||||||
|
|
||||||
void cast (btCollisionWorld* cw)
|
void cast (btCollisionWorld* cw)
|
||||||
{
|
{
|
||||||
|
#ifdef USE_BT_CLOCK
|
||||||
frame_timer.reset ();
|
frame_timer.reset ();
|
||||||
|
#endif //USE_BT_CLOCK
|
||||||
|
|
||||||
for (int i = 0; i < NUMRAYS_IN_BAR; i++)
|
for (int i = 0; i < NUMRAYS_IN_BAR; i++)
|
||||||
{
|
{
|
||||||
btCollisionWorld::ClosestRayResultCallback cb(source[i], dest[i]);
|
btCollisionWorld::ClosestRayResultCallback cb(source[i], dest[i]);
|
||||||
@@ -154,7 +159,9 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
#ifdef USE_BT_CLOCK
|
||||||
ms += frame_timer.getTimeMilliseconds ();
|
ms += frame_timer.getTimeMilliseconds ();
|
||||||
|
#endif //USE_BT_CLOCK
|
||||||
frame_counter++;
|
frame_counter++;
|
||||||
if (frame_counter > 50)
|
if (frame_counter > 50)
|
||||||
{
|
{
|
||||||
@@ -333,8 +340,7 @@ void ConcaveRaycastDemo::clientMoveAndDisplay()
|
|||||||
{
|
{
|
||||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
|
|
||||||
float dt = m_clock.getTimeMicroseconds() * 0.000001f;
|
float dt = getDeltaTimeMicroseconds() * 0.000001f;
|
||||||
m_clock.reset();
|
|
||||||
|
|
||||||
if (m_animatedMesh)
|
if (m_animatedMesh)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -209,8 +209,7 @@ void ConstraintDemo::clientMoveAndDisplay()
|
|||||||
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
|
|
||||||
float dt = float(m_clock.getTimeMicroseconds()) * 0.000001f;
|
float dt = float(getDeltaTimeMicroseconds()) * 0.000001f;
|
||||||
m_clock.reset();
|
|
||||||
//printf("dt = %f: ",dt);
|
//printf("dt = %f: ",dt);
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -367,8 +367,7 @@ void ConvexDecompositionDemo::clientMoveAndDisplay()
|
|||||||
{
|
{
|
||||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
|
|
||||||
float dt = m_clock.getTimeMicroseconds() * 0.000001f;
|
float dt = getDeltaTimeMicroseconds() * 0.000001f;
|
||||||
m_clock.reset();
|
|
||||||
|
|
||||||
m_dynamicsWorld->stepSimulation(dt);
|
m_dynamicsWorld->stepSimulation(dt);
|
||||||
|
|
||||||
|
|||||||
@@ -300,8 +300,7 @@ void MotorDemo::clientMoveAndDisplay()
|
|||||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
|
|
||||||
//simple dynamics world doesn't handle fixed-time-stepping
|
//simple dynamics world doesn't handle fixed-time-stepping
|
||||||
float ms = m_clock.getTimeMicroseconds();
|
float ms = getDeltaTimeMicroseconds();
|
||||||
m_clock.reset();
|
|
||||||
float minFPS = 1000000.f/60.f;
|
float minFPS = 1000000.f/60.f;
|
||||||
if (ms > minFPS)
|
if (ms > minFPS)
|
||||||
ms = minFPS;
|
ms = minFPS;
|
||||||
|
|||||||
@@ -109,8 +109,8 @@ void GenericJointDemo::clientMoveAndDisplay()
|
|||||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
|
|
||||||
//simple dynamics world doesn't handle fixed-time-stepping
|
//simple dynamics world doesn't handle fixed-time-stepping
|
||||||
float ms = m_clock.getTimeMicroseconds();
|
float ms = getDeltaTimeMicroseconds();
|
||||||
m_clock.reset();
|
|
||||||
float minFPS = 1000000.f/60.f;
|
float minFPS = 1000000.f/60.f;
|
||||||
if (ms > minFPS)
|
if (ms > minFPS)
|
||||||
ms = minFPS;
|
ms = minFPS;
|
||||||
|
|||||||
@@ -582,7 +582,7 @@ void GimpactConcaveDemo::clientMoveAndDisplay()
|
|||||||
#endif //USE_KINEMATIC_GROUND
|
#endif //USE_KINEMATIC_GROUND
|
||||||
|
|
||||||
|
|
||||||
unsigned long int time = m_clock.getTimeMilliseconds();
|
unsigned long int time = getDeltaTimeMicroseconds()/btScalar(1000);
|
||||||
printf("%i time %i ms \n",m_steps_done,time);
|
printf("%i time %i ms \n",m_steps_done,time);
|
||||||
|
|
||||||
//#ifdef BULLET_GIMPACT
|
//#ifdef BULLET_GIMPACT
|
||||||
@@ -596,7 +596,6 @@ void GimpactConcaveDemo::clientMoveAndDisplay()
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
m_clock.reset();
|
|
||||||
m_dynamicsWorld->stepSimulation(dt);
|
m_dynamicsWorld->stepSimulation(dt);
|
||||||
|
|
||||||
//optional but useful: debug drawing
|
//optional but useful: debug drawing
|
||||||
|
|||||||
@@ -1886,8 +1886,8 @@ void ConcaveDemo::clientMoveAndDisplay()
|
|||||||
{
|
{
|
||||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
|
|
||||||
float dt = float(m_clock.getTimeMicroseconds()) * 0.000001f;
|
float dt = float(getDeltaTimeMicroseconds()) * 0.000001f;
|
||||||
m_clock.reset();
|
|
||||||
m_dynamicsWorld->stepSimulation(dt);
|
m_dynamicsWorld->stepSimulation(dt);
|
||||||
|
|
||||||
//optional but useful: debug drawing
|
//optional but useful: debug drawing
|
||||||
|
|||||||
@@ -137,8 +137,8 @@ void MultiThreadedDemo::clientMoveAndDisplay()
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
float dt = m_clock.getTimeMicroseconds() * 0.000001f;
|
float dt = getDeltaTimeMicroseconds() * 0.000001f;
|
||||||
m_clock.reset();
|
|
||||||
// printf("dt = %f: ",dt);
|
// printf("dt = %f: ",dt);
|
||||||
|
|
||||||
if (m_dynamicsWorld)
|
if (m_dynamicsWorld)
|
||||||
|
|||||||
@@ -72,15 +72,19 @@ m_shootBoxShape(0),
|
|||||||
m_singleStep(false),
|
m_singleStep(false),
|
||||||
m_idle(false)
|
m_idle(false)
|
||||||
{
|
{
|
||||||
|
#ifndef BT_NO_PROFILE
|
||||||
m_profileIterator = CProfileManager::Get_Iterator();
|
m_profileIterator = CProfileManager::Get_Iterator();
|
||||||
|
#endif //BT_NO_PROFILE
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
DemoApplication::~DemoApplication()
|
DemoApplication::~DemoApplication()
|
||||||
{
|
{
|
||||||
|
#ifndef BT_NO_PROFILE
|
||||||
CProfileManager::Release_Iterator(m_profileIterator);
|
CProfileManager::Release_Iterator(m_profileIterator);
|
||||||
|
#endif //BT_NO_PROFILE
|
||||||
|
|
||||||
if (m_shootBoxShape)
|
if (m_shootBoxShape)
|
||||||
delete m_shootBoxShape;
|
delete m_shootBoxShape;
|
||||||
|
|
||||||
@@ -242,6 +246,7 @@ void DemoApplication::keyboardCallback(unsigned char key, int x, int y)
|
|||||||
|
|
||||||
m_lastKey = 0;
|
m_lastKey = 0;
|
||||||
|
|
||||||
|
#ifndef BT_NO_PROFILE
|
||||||
if (key >= 0x31 && key < 0x37)
|
if (key >= 0x31 && key < 0x37)
|
||||||
{
|
{
|
||||||
int child = key-0x31;
|
int child = key-0x31;
|
||||||
@@ -251,7 +256,7 @@ void DemoApplication::keyboardCallback(unsigned char key, int x, int y)
|
|||||||
{
|
{
|
||||||
m_profileIterator->Enter_Parent();
|
m_profileIterator->Enter_Parent();
|
||||||
}
|
}
|
||||||
|
#endif //BT_NO_PROFILE
|
||||||
|
|
||||||
switch (key)
|
switch (key)
|
||||||
{
|
{
|
||||||
@@ -789,6 +794,7 @@ void DemoApplication::displayProfileString(int xOffset,int yStart,char* message)
|
|||||||
|
|
||||||
void DemoApplication::showProfileInfo(float& xOffset,float& yStart, float yIncr)
|
void DemoApplication::showProfileInfo(float& xOffset,float& yStart, float yIncr)
|
||||||
{
|
{
|
||||||
|
#ifndef BT_NO_PROFILE
|
||||||
|
|
||||||
static double time_since_reset = 0.f;
|
static double time_since_reset = 0.f;
|
||||||
if (!m_idle)
|
if (!m_idle)
|
||||||
@@ -851,6 +857,7 @@ void DemoApplication::showProfileInfo(float& xOffset,float& yStart, float yIncr)
|
|||||||
yStart += yIncr;
|
yStart += yIncr;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
#endif//BT_NO_PROFILE
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -44,8 +44,9 @@ class DemoApplication
|
|||||||
class CProfileIterator* m_profileIterator;
|
class CProfileIterator* m_profileIterator;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
#ifdef USE_BT_CLOCK
|
||||||
btClock m_clock;
|
btClock m_clock;
|
||||||
|
#endif //USE_BT_CLOCK
|
||||||
|
|
||||||
///this is the most important class
|
///this is the most important class
|
||||||
btDynamicsWorld* m_dynamicsWorld;
|
btDynamicsWorld* m_dynamicsWorld;
|
||||||
@@ -127,6 +128,16 @@ public:
|
|||||||
return m_cameraTargetPosition;
|
return m_cameraTargetPosition;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
btScalar getDeltaTimeMicroseconds()
|
||||||
|
{
|
||||||
|
#ifdef USE_BT_CLOCK
|
||||||
|
btScalar dt = m_clock.getTimeMicroseconds();
|
||||||
|
m_clock.reset();
|
||||||
|
return dt;
|
||||||
|
#else
|
||||||
|
return btScalar(16666.);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
///glut callbacks
|
///glut callbacks
|
||||||
|
|
||||||
|
|||||||
@@ -364,8 +364,8 @@ void RagdollDemo::clientMoveAndDisplay()
|
|||||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
|
|
||||||
//simple dynamics world doesn't handle fixed-time-stepping
|
//simple dynamics world doesn't handle fixed-time-stepping
|
||||||
float ms = m_clock.getTimeMicroseconds();
|
float ms = getDeltaTimeMicroseconds();
|
||||||
m_clock.reset();
|
|
||||||
float minFPS = 1000000.f/60.f;
|
float minFPS = 1000000.f/60.f;
|
||||||
if (ms > minFPS)
|
if (ms > minFPS)
|
||||||
ms = minFPS;
|
ms = minFPS;
|
||||||
|
|||||||
@@ -142,8 +142,8 @@ void UserCollisionAlgorithm::clientMoveAndDisplay()
|
|||||||
{
|
{
|
||||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
|
|
||||||
float dt = m_clock.getTimeMicroseconds() * 0.000001f;
|
float dt = getDeltaTimeMicroseconds() * 0.000001f;
|
||||||
m_clock.reset();
|
|
||||||
|
|
||||||
m_dynamicsWorld->stepSimulation(dt);
|
m_dynamicsWorld->stepSimulation(dt);
|
||||||
|
|
||||||
|
|||||||
@@ -440,8 +440,8 @@ void VehicleDemo::clientMoveAndDisplay()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
float dt = m_clock.getTimeMicroseconds() * 0.000001f;
|
float dt = getDeltaTimeMicroseconds() * 0.000001f;
|
||||||
m_clock.reset();
|
|
||||||
if (m_dynamicsWorld)
|
if (m_dynamicsWorld)
|
||||||
{
|
{
|
||||||
//during idle mode, just run 1 simulation step maximum
|
//during idle mode, just run 1 simulation step maximum
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ Written by: Marten Svanfeldt
|
|||||||
#include "BulletCollision/CollisionShapes/btCollisionShape.h"
|
#include "BulletCollision/CollisionShapes/btCollisionShape.h"
|
||||||
#include "BulletCollision/CollisionDispatch/btCollisionObject.h"
|
#include "BulletCollision/CollisionDispatch/btCollisionObject.h"
|
||||||
#include "BulletDynamics/ConstraintSolver/btTypedConstraint.h"
|
#include "BulletDynamics/ConstraintSolver/btTypedConstraint.h"
|
||||||
#include "LinearMath/btQuickProf.h"
|
#include "LinearMath/btQuickprof.h"
|
||||||
|
|
||||||
#include "SpuSolverTask/SpuParallellSolverTask.h"
|
#include "SpuSolverTask/SpuParallellSolverTask.h"
|
||||||
|
|
||||||
|
|||||||
@@ -596,7 +596,7 @@ float computeConcavity(unsigned int vcount,
|
|||||||
|
|
||||||
if ( ret == QE_OK )
|
if ( ret == QE_OK )
|
||||||
{
|
{
|
||||||
|
#if 0
|
||||||
float bmin[3];
|
float bmin[3];
|
||||||
float bmax[3];
|
float bmax[3];
|
||||||
|
|
||||||
@@ -609,6 +609,7 @@ float computeConcavity(unsigned int vcount,
|
|||||||
center.x = bmin[0] + dx*0.5f;
|
center.x = bmin[0] + dx*0.5f;
|
||||||
center.y = bmin[1] + dy*0.5f;
|
center.y = bmin[1] + dy*0.5f;
|
||||||
center.z = bmin[2] + dz*0.5f;
|
center.z = bmin[2] + dz*0.5f;
|
||||||
|
#endif
|
||||||
|
|
||||||
volume = computeMeshVolume2( result.mOutputVertices, result.mNumFaces, result.mIndices );
|
volume = computeMeshVolume2( result.mOutputVertices, result.mNumFaces, result.mIndices );
|
||||||
|
|
||||||
|
|||||||
@@ -23,8 +23,9 @@ subject to the following restrictions:
|
|||||||
#include "GIMPACT/Bullet/btGImpactBvh.h"
|
#include "GIMPACT/Bullet/btGImpactBvh.h"
|
||||||
#include "LinearMath/btQuickprof.h"
|
#include "LinearMath/btQuickprof.h"
|
||||||
|
|
||||||
btClock g_tree_clock;
|
#ifdef TRI_COLLISION_PROFILING
|
||||||
|
|
||||||
|
btClock g_tree_clock;
|
||||||
|
|
||||||
float g_accum_tree_collision_time = 0;
|
float g_accum_tree_collision_time = 0;
|
||||||
int g_count_traversing = 0;
|
int g_count_traversing = 0;
|
||||||
@@ -59,6 +60,7 @@ float btGImpactBvh::getAverageTreeCollisionTime()
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif //TRI_COLLISION_PROFILING
|
||||||
|
|
||||||
/////////////////////// btBvhTree /////////////////////////////////
|
/////////////////////// btBvhTree /////////////////////////////////
|
||||||
|
|
||||||
@@ -482,12 +484,16 @@ void btGImpactBvh::find_collision(btGImpactBvh * boxset0, const btTransform & tr
|
|||||||
|
|
||||||
trans_cache_1to0.calc_from_homogenic(trans0,trans1);
|
trans_cache_1to0.calc_from_homogenic(trans0,trans1);
|
||||||
|
|
||||||
|
#ifdef TRI_COLLISION_PROFILING
|
||||||
bt_begin_gim02_tree_time();
|
bt_begin_gim02_tree_time();
|
||||||
|
#endif //TRI_COLLISION_PROFILING
|
||||||
|
|
||||||
_find_collision_pairs_recursive(
|
_find_collision_pairs_recursive(
|
||||||
boxset0,boxset1,
|
boxset0,boxset1,
|
||||||
&collision_pairs,trans_cache_1to0,0,0,true);
|
&collision_pairs,trans_cache_1to0,0,0,true);
|
||||||
|
#ifdef TRI_COLLISION_PROFILING
|
||||||
bt_end_gim02_tree_time();
|
bt_end_gim02_tree_time();
|
||||||
|
#endif //TRI_COLLISION_PROFILING
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ public:
|
|||||||
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
#ifdef TRI_COLLISION_PROFILING
|
||||||
|
|
||||||
btClock g_triangle_clock;
|
btClock g_triangle_clock;
|
||||||
|
|
||||||
@@ -79,7 +80,7 @@ void bt_end_gim02_tri_time()
|
|||||||
g_accum_triangle_collision_time += g_triangle_clock.getTimeMicroseconds();
|
g_accum_triangle_collision_time += g_triangle_clock.getTimeMicroseconds();
|
||||||
g_count_triangle_collision++;
|
g_count_triangle_collision++;
|
||||||
}
|
}
|
||||||
|
#endif //TRI_COLLISION_PROFILING
|
||||||
//! Retrieving shapes shapes
|
//! Retrieving shapes shapes
|
||||||
/*!
|
/*!
|
||||||
Declared here due of insuficent space on Pool allocators
|
Declared here due of insuficent space on Pool allocators
|
||||||
@@ -163,6 +164,7 @@ public:
|
|||||||
//!@}
|
//!@}
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef TRI_COLLISION_PROFILING
|
||||||
|
|
||||||
//! Gets the average time in miliseconds of tree collisions
|
//! Gets the average time in miliseconds of tree collisions
|
||||||
float btGImpactCollisionAlgorithm::getAverageTreeCollisionTime()
|
float btGImpactCollisionAlgorithm::getAverageTreeCollisionTime()
|
||||||
@@ -185,6 +187,7 @@ float btGImpactCollisionAlgorithm::getAverageTriangleCollisionTime()
|
|||||||
return avgtime;
|
return avgtime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif //TRI_COLLISION_PROFILING
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ subject to the following restrictions:
|
|||||||
#include "GIMPACT/Bullet/btGImpactQuantizedBvh.h"
|
#include "GIMPACT/Bullet/btGImpactQuantizedBvh.h"
|
||||||
#include "LinearMath/btQuickprof.h"
|
#include "LinearMath/btQuickprof.h"
|
||||||
|
|
||||||
|
#ifdef TRI_COLLISION_PROFILING
|
||||||
btClock g_q_tree_clock;
|
btClock g_q_tree_clock;
|
||||||
|
|
||||||
|
|
||||||
@@ -61,6 +62,7 @@ float btGImpactQuantizedBvh::getAverageTreeCollisionTime()
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif //TRI_COLLISION_PROFILING
|
||||||
|
|
||||||
/////////////////////// btQuantizedBvhTree /////////////////////////////////
|
/////////////////////// btQuantizedBvhTree /////////////////////////////////
|
||||||
|
|
||||||
@@ -511,13 +513,17 @@ void btGImpactQuantizedBvh::find_collision(btGImpactQuantizedBvh * boxset0, cons
|
|||||||
|
|
||||||
trans_cache_1to0.calc_from_homogenic(trans0,trans1);
|
trans_cache_1to0.calc_from_homogenic(trans0,trans1);
|
||||||
|
|
||||||
|
#ifdef TRI_COLLISION_PROFILING
|
||||||
bt_begin_gim02_q_tree_time();
|
bt_begin_gim02_q_tree_time();
|
||||||
|
#endif //TRI_COLLISION_PROFILING
|
||||||
|
|
||||||
_find_quantized_collision_pairs_recursive(
|
_find_quantized_collision_pairs_recursive(
|
||||||
boxset0,boxset1,
|
boxset0,boxset1,
|
||||||
&collision_pairs,trans_cache_1to0,0,0,true);
|
&collision_pairs,trans_cache_1to0,0,0,true);
|
||||||
|
#ifdef TRI_COLLISION_PROFILING
|
||||||
bt_end_gim02_q_tree_time();
|
bt_end_gim02_q_tree_time();
|
||||||
|
#endif //TRI_COLLISION_PROFILING
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,9 @@ INCLUDE_DIRECTORIES(
|
|||||||
|
|
||||||
# Prevent MSVC from moaning
|
# Prevent MSVC from moaning
|
||||||
ADD_DEFINITIONS( -D_CRT_SECURE_NO_WARNINGS)
|
ADD_DEFINITIONS( -D_CRT_SECURE_NO_WARNINGS)
|
||||||
|
ADD_DEFINITIONS( -D_CRT_SECURE_NO_DEPRECATE)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ADD_LIBRARY(LibXML
|
ADD_LIBRARY(LibXML
|
||||||
c14n.c
|
c14n.c
|
||||||
@@ -27,8 +30,6 @@ ADD_LIBRARY(LibXML
|
|||||||
parserInternals.c
|
parserInternals.c
|
||||||
pattern.c
|
pattern.c
|
||||||
relaxng.c
|
relaxng.c
|
||||||
runsuite.c
|
|
||||||
runtest.c
|
|
||||||
SAX.c
|
SAX.c
|
||||||
SAX2.c
|
SAX2.c
|
||||||
schematron.c
|
schematron.c
|
||||||
@@ -41,9 +42,7 @@ ADD_LIBRARY(LibXML
|
|||||||
valid.c
|
valid.c
|
||||||
xinclude.c
|
xinclude.c
|
||||||
xlink.c
|
xlink.c
|
||||||
xmlcatalog.c
|
|
||||||
xmlIO.c
|
xmlIO.c
|
||||||
xmllint.c
|
|
||||||
xmlmemory.c
|
xmlmemory.c
|
||||||
xmlmodule.c
|
xmlmodule.c
|
||||||
xmlreader.c
|
xmlreader.c
|
||||||
|
|||||||
@@ -329,7 +329,9 @@ int btDiscreteDynamicsWorld::stepSimulation( btScalar timeStep,int maxSubSteps,
|
|||||||
|
|
||||||
clearForces();
|
clearForces();
|
||||||
|
|
||||||
|
#ifndef BT_NO_PROFILE
|
||||||
CProfileManager::Increment_Frame_Counter();
|
CProfileManager::Increment_Frame_Counter();
|
||||||
|
#endif //BT_NO_PROFILE
|
||||||
|
|
||||||
return numSimulationSubSteps;
|
return numSimulationSubSteps;
|
||||||
}
|
}
|
||||||
@@ -717,40 +719,10 @@ void btDiscreteDynamicsWorld::startProfiling(btScalar timeStep)
|
|||||||
{
|
{
|
||||||
(void)timeStep;
|
(void)timeStep;
|
||||||
|
|
||||||
|
#ifndef BT_NO_PROFILE
|
||||||
CProfileManager::Reset();
|
CProfileManager::Reset();
|
||||||
|
#endif //BT_NO_PROFILE
|
||||||
|
|
||||||
|
|
||||||
#ifdef USE_QUICKPROF
|
|
||||||
|
|
||||||
|
|
||||||
//toggle btProfiler
|
|
||||||
if ( m_debugDrawer && m_debugDrawer->getDebugMode() & btIDebugDraw::DBG_ProfileTimings)
|
|
||||||
{
|
|
||||||
if (!m_profileTimings)
|
|
||||||
{
|
|
||||||
m_profileTimings = 1;
|
|
||||||
// To disable profiling, simply comment out the following line.
|
|
||||||
static int counter = 0;
|
|
||||||
|
|
||||||
char filename[128];
|
|
||||||
sprintf(filename,"quickprof_bullet_timings%i.csv",counter++);
|
|
||||||
btProfiler::init(filename, btProfiler::BLOCK_CYCLE_SECONDS);//BLOCK_TOTAL_MICROSECONDS
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
btProfiler::endProfilingCycle();
|
|
||||||
}
|
|
||||||
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
if (m_profileTimings)
|
|
||||||
{
|
|
||||||
btProfiler::endProfilingCycle();
|
|
||||||
|
|
||||||
m_profileTimings = 0;
|
|
||||||
btProfiler::destroy();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif //USE_QUICKPROF
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,8 @@
|
|||||||
|
|
||||||
#include "LinearMath/btQuickprof.h"
|
#include "LinearMath/btQuickprof.h"
|
||||||
|
|
||||||
|
#ifdef USE_BT_CLOCK
|
||||||
|
|
||||||
static btClock gProfileClock;
|
static btClock gProfileClock;
|
||||||
|
|
||||||
inline void Profile_Get_Ticks(unsigned long int * ticks)
|
inline void Profile_Get_Ticks(unsigned long int * ticks)
|
||||||
@@ -29,6 +31,8 @@ inline float Profile_Get_Tick_Rate(void)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/***************************************************************************************************
|
/***************************************************************************************************
|
||||||
**
|
**
|
||||||
** CProfileNode
|
** CProfileNode
|
||||||
@@ -264,5 +268,5 @@ float CProfileManager::Get_Time_Since_Reset( void )
|
|||||||
return (float)time / Profile_Get_Tick_Rate();
|
return (float)time / Profile_Get_Tick_Rate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif //USE_BT_CLOCK
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user