//-----------------------------------------------------------------------------
//  Destructor
//-----------------------------------------------------------------------------
CPhysicEngine::~CPhysicEngine (void)
{
    // Liberamos el gestor de controllers
    NxReleaseControllerManager( m_pControllerMgr );

    // Liberacion del motor de fisica
    m_pPhysicsSDK->release();

    // NOTA: Al liberar el SDK, tenemos que liberar tambien la memoria persistente de la libreria de Streaming
    //       para que libere sus tablas de referencia a instancias de meshes que estuvieran cargadas
    NXU::releasePersistentMemory ();
}
Example #2
0
/***********************************************************
	quit function
***********************************************************/
void PhysXEngine::Quit()
{
    if (gScene)
	{
		// Make sure to fetchResults() before shutting down
		GetPhysicsResults();  
		gPhysicsSDK->releaseScene(*gScene);
	}

	if (gPhysicsSDK)  
		gPhysicsSDK->release();

	// clean up character controllers
	gManager->purgeControllers();
	_current_controller_idx = 0;
	NxReleaseControllerManager(gManager);
}
//----------------------------------------------------------------------------
// Free memory
//----------------------------------------------------------------------------
void CPhysicsManager::Release ()
{

	CHECKED_DELETE(m_pCookingMesh);
	if( m_pControllerManager != NULL )
	{
	m_pControllerManager->purgeControllers();
	NxReleaseControllerManager(m_pControllerManager);
	}
	if(m_pScene != NULL)
	{
		m_pPhysicsSDK->releaseScene(*m_pScene);
		m_pScene = NULL;
	}

	if(m_pPhysicsSDK != NULL)
	{				
		NxReleasePhysicsSDK(m_pPhysicsSDK);
		m_pPhysicsSDK = NULL;
	}
	CHECKED_DELETE(m_pMyAllocator);
	/**/
}
//服务的关闭
efd::AsyncResult PhysxCharacterMovementService::OnShutdown()
{
	NxReleaseControllerManager(m_pkNxControllerManager);
	return efd::AsyncResult_Complete;

}
ControllerManager::~ControllerManager()
{
 mControllers.destroyAll();
 NxReleaseControllerManager(mManager);
 delete mAllocator;
}
void ReleaseControllerManager()
{
	NxReleaseControllerManager(gManager);
}