在Ogre 1.7 (Cthuga)下编译Hydrax 0.5.1(修改过程)

来源:互联网 发布:斯维尔软件培训 编辑:程序博客网 时间:2024/05/17 07:09

 

Compiling Hydrax 0.5.1 with Ogre 1.7 (Cthuga)
Here's a quick guide to compile the new Hydrax with the new Ogre.
Note that the changes are backwards compatible, so they will work con 1.6 too
SimpleGrid.cpp line 305 change
Code: Select all
mHydrax->getMesh()->getEntity()->getParentSceneNode()->getWorldTransforms(&mWorldMatrix);

with
Code: Select all
#if OGRE_VERSION_MAJOR >= 1 && OGRE_VERSION_MINOR >= 7
         mWorldMatrix = mHydrax->getMesh()->getEntity()->getParentSceneNode()->_getFullTransform();
#else
          mHydrax->getMesh()->getEntity()->getParentSceneNode()->getWorldTransforms(&mWorldMatrix);
#endif


Mesh.cpp line 414 change
Code: Select all
mEntity->getParentSceneNode()->getWorldTransforms(&mWorldMatrix);

with
Code: Select all
#if OGRE_VERSION_MAJOR >= 1 && OGRE_VERSION_MINOR >= 7
         mWorldMatrix = mEntity->getParentSceneNode()->_getFullTransform();
#else
         mEntity->getParentSceneNode()->getWorldTransforms(&mWorldMatrix);
#endif


a couple of lines after change
Code: Select all
mTmpSN->getWorldTransforms(&mWorldMatrix);

with
Code: Select all
#if OGRE_VERSION_MAJOR >= 1 && OGRE_VERSION_MINOR >= 7
         mWorldMatrix = mTmpSN->_getFullTransform();
#else
         mTmpSN->getWorldTransforms(&mWorldMatrix);
#endif


again in the same file, change
Code: Select all
mEntity->getParentSceneNode()->getWorldTransforms(&mWorldMatrix);

with
Code: Select all
#if OGRE_VERSION_MAJOR >= 1 && OGRE_VERSION_MINOR >= 7
         mWorldMatrix = mEntity->getParentSceneNode()->_getFullTransform();
#else
         mEntity->getParentSceneNode()->getWorldTransforms(&mWorldMatrix);
#endif


and
Code: Select all
mTmpSN->getWorldTransforms(&mWorldMatrix);

with
Code: Select all
#if OGRE_VERSION_MAJOR >= 1 && OGRE_VERSION_MINOR >= 7
         mWorldMatrix = mTmpSN->_getFullTransform();
#else
         mTmpSN->getWorldTransforms(&mWorldMatrix);
#endif


Last, in CfgFileManager.cpp line 305 change
Code: Select all
std::vector<Ogre::String> Cmpnts = Ogre::StringUtil::split(CfgFile.getSetting("Components"), "|");

to
Code: Select all
Ogre::StringVector Cmpnts = Ogre::StringUtil::split(CfgFile.getSetting("Components"), "|");


and change the parameter of the function _isStringInList from std::vector<Ogre::String> to Ogre::StringVector too, in both CfgFileManager.h and CfgFileManager.cpp
 Attention 这里 有两处要修改,一次为 CfgFileManager.h,一次为 CfgFileManager.cpp 文件