mgoodman
19-05-2008 20:52:54
Dear physics master,
So I'm slowly trying to integrate NxOgre into the project we're working on. I tried to include a NxOgre::World into our project. It compiles fine, but I always get an Access Violation when it runs. Here are the rough details:
- Ogre 1.4.7, NxOgre 0.9-38, Visual Studio 2008 (Debug Mode, not Release), Microsoft Windows Vista.
- GameRoot class extends Ogre::Root and GameWorld class extends NxOgre::World. Here's a small piece of our UML diagram to help you understand.

- The GameWorld constructor is basically a copy of the NxOgre::World constructor, except mRoot is defined as our GameRoot and I had to comment out the if statements at the end since GameWorld is not a friend class of the appropriate classes.
- Here's what the CoreApplication class does at first:
- The program compiles fine, but I get the following Access Violation when I run it:
- Cue sexy (not really) Visual Studio 2008 debug screenshot!

So I hope that gives you a good idea of the problem. I tried passing different PhysXParams to the GameWorld constructor (like "time-controller:ogre" or just "") and I get the same Access Violation regardless. I'd appreciate any help you can offer.
Thanks,
Mathieu
So I'm slowly trying to integrate NxOgre into the project we're working on. I tried to include a NxOgre::World into our project. It compiles fine, but I always get an Access Violation when it runs. Here are the rough details:
- Ogre 1.4.7, NxOgre 0.9-38, Visual Studio 2008 (Debug Mode, not Release), Microsoft Windows Vista.
- GameRoot class extends Ogre::Root and GameWorld class extends NxOgre::World. Here's a small piece of our UML diagram to help you understand.
- The GameWorld constructor is basically a copy of the NxOgre::World constructor, except mRoot is defined as our GameRoot and I had to comment out the if statements at the end since GameWorld is not a friend class of the appropriate classes.
GameWorld::GameWorld( PhysXDriverParams driverParams )
{
mRoot = GameRoot::getSingletonPtr();
mDriver = new PhysXDriver(this, driverParams);
srand((unsigned)time(0));
mDriver->getSDK()->setParameter(NX_VISUALIZATION_SCALE, 1.0f);
mDriver->getSDK()->setParameter(NX_SKIN_WIDTH,0.01f);
mDriver->getSDK()->setParameter(NX_VISUALIZE_WORLD_AXES, true);
mDriver->getSDK()->setParameter(NX_CONTINUOUS_CD, true);
mDriver->getSDK()->setParameter(NX_CCD_EPSILON, 0.01);
/*#if (NX_USE_CHARACTER_API == 1)
mCharacterController = new CharacterController();
#endif
#if (NX_USE_DEBUG_RENDERER_API == 1)
mDebugRenderer = 0;
#endif*/
}
- Here's what the CoreApplication class does at first:
bool CoreApplication::SetupApplication()
{
CreateGameRoot(); //creates a new GameRoot
SetupResources(); //config file parsing, resourceGroup creation, etc.
CreateGameWorld(); //creates a new GameWorld
(...)
}
- The program compiles fine, but I get the following Access Violation when I run it:
Unhandled exception at 0x0157d0e6 (NxOgre_d.dll) in planet2.exe: 0xC0000005: Access violation reading location 0xcdcdcde9.
- Cue sexy (not really) Visual Studio 2008 debug screenshot!
So I hope that gives you a good idea of the problem. I tried passing different PhysXParams to the GameWorld constructor (like "time-controller:ogre" or just "") and I get the same Access Violation regardless. I'd appreciate any help you can offer.
Thanks,
Mathieu