mirror of
https://github.com/OpenMW/openmw.git
synced 2025-01-21 08:53:52 +00:00
fixed some leaks
This commit is contained in:
parent
c85c794c86
commit
42e44ac1b5
3 changed files with 25 additions and 4 deletions
|
@ -97,7 +97,6 @@ RenderingManager::RenderingManager (OEngine::Render::OgreRenderer& _rend, const
|
||||||
|
|
||||||
mTerrainManager = new TerrainManager(mRendering.getScene(), this);
|
mTerrainManager = new TerrainManager(mRendering.getScene(), this);
|
||||||
|
|
||||||
//mSkyManager = 0;
|
|
||||||
mSkyManager = new SkyManager(mMwRoot, mRendering.getCamera());
|
mSkyManager = new SkyManager(mMwRoot, mRendering.getCamera());
|
||||||
|
|
||||||
mOcclusionQuery = new OcclusionQuery(&mRendering, mSkyManager->getSunNode());
|
mOcclusionQuery = new OcclusionQuery(&mRendering, mSkyManager->getSunNode());
|
||||||
|
@ -116,10 +115,13 @@ RenderingManager::~RenderingManager ()
|
||||||
delete mPlayer;
|
delete mPlayer;
|
||||||
delete mSkyManager;
|
delete mSkyManager;
|
||||||
delete mDebugging;
|
delete mDebugging;
|
||||||
|
delete mShaderHelper;
|
||||||
|
delete mShadows;
|
||||||
delete mTerrainManager;
|
delete mTerrainManager;
|
||||||
delete mLocalMap;
|
delete mLocalMap;
|
||||||
delete mOcclusionQuery;
|
delete mOcclusionQuery;
|
||||||
delete mCompositors;
|
delete mCompositors;
|
||||||
|
delete mWater;
|
||||||
}
|
}
|
||||||
|
|
||||||
MWRender::SkyManager* RenderingManager::getSkyManager()
|
MWRender::SkyManager* RenderingManager::getSkyManager()
|
||||||
|
|
|
@ -300,7 +300,13 @@ namespace Physic
|
||||||
body->collide = true;
|
body->collide = true;
|
||||||
body->getWorldTransform().setOrigin(btVector3( (x+0.5)*triSize*(sqrtVerts-1), (y+0.5)*triSize*(sqrtVerts-1), (maxh+minh)/2.f));
|
body->getWorldTransform().setOrigin(btVector3( (x+0.5)*triSize*(sqrtVerts-1), (y+0.5)*triSize*(sqrtVerts-1), (maxh+minh)/2.f));
|
||||||
|
|
||||||
addRigidBody(body);
|
HeightField hf;
|
||||||
|
hf.mBody = body;
|
||||||
|
hf.mShape = hfShape;
|
||||||
|
|
||||||
|
mHeightFieldMap [name] = hf;
|
||||||
|
|
||||||
|
dynamicsWorld->addRigidBody(body,COL_WORLD,COL_WORLD|COL_ACTOR_INTERNAL|COL_ACTOR_EXTERNAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PhysicEngine::removeHeightField(int x, int y)
|
void PhysicEngine::removeHeightField(int x, int y)
|
||||||
|
@ -309,8 +315,11 @@ namespace Physic
|
||||||
+ boost::lexical_cast<std::string>(x) + "_"
|
+ boost::lexical_cast<std::string>(x) + "_"
|
||||||
+ boost::lexical_cast<std::string>(y);
|
+ boost::lexical_cast<std::string>(y);
|
||||||
|
|
||||||
removeRigidBody(name);
|
HeightField hf = mHeightFieldMap [name];
|
||||||
deleteRigidBody(name);
|
|
||||||
|
dynamicsWorld->removeRigidBody(hf.mBody);
|
||||||
|
delete hf.mShape;
|
||||||
|
delete hf.mBody;
|
||||||
}
|
}
|
||||||
|
|
||||||
RigidBody* PhysicEngine::createRigidBody(std::string mesh,std::string name,float scale)
|
RigidBody* PhysicEngine::createRigidBody(std::string mesh,std::string name,float scale)
|
||||||
|
|
|
@ -15,6 +15,7 @@ class btSequentialImpulseConstraintSolver;
|
||||||
class btCollisionDispatcher;
|
class btCollisionDispatcher;
|
||||||
class btDiscreteDynamicsWorld;
|
class btDiscreteDynamicsWorld;
|
||||||
class btKinematicCharacterController;
|
class btKinematicCharacterController;
|
||||||
|
class btHeightfieldTerrainShape;
|
||||||
|
|
||||||
namespace BtOgre
|
namespace BtOgre
|
||||||
{
|
{
|
||||||
|
@ -115,6 +116,12 @@ namespace Physic
|
||||||
bool collide;
|
bool collide;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct HeightField
|
||||||
|
{
|
||||||
|
btHeightfieldTerrainShape* mShape;
|
||||||
|
RigidBody* mBody;
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The PhysicEngine class contain everything which is needed for Physic.
|
* The PhysicEngine class contain everything which is needed for Physic.
|
||||||
* It's needed that Ogre Resources are set up before the PhysicEngine is created.
|
* It's needed that Ogre Resources are set up before the PhysicEngine is created.
|
||||||
|
@ -240,6 +247,9 @@ namespace Physic
|
||||||
//the NIF file loader.
|
//the NIF file loader.
|
||||||
BulletShapeLoader* mShapeLoader;
|
BulletShapeLoader* mShapeLoader;
|
||||||
|
|
||||||
|
typedef std::map<std::string, HeightField> HeightFieldContainer;
|
||||||
|
HeightFieldContainer mHeightFieldMap;
|
||||||
|
|
||||||
typedef std::map<std::string,RigidBody*> RigidBodyContainer;
|
typedef std::map<std::string,RigidBody*> RigidBodyContainer;
|
||||||
RigidBodyContainer RigidBodyMap;
|
RigidBodyContainer RigidBodyMap;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue