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
with
Mesh.cpp line 414 change
with
a couple of lines after change
with
again in the same file, change
with
and
with
Last, in CfgFileManager.cpp line 305 change
to
and change the parameter of the function _isStringInList from std::vector<Ogre::String> to Ogre::StringVector too, in both CfgFileManager.h and CfgFileManager.cpp
Note that the changes are backwards compatible, so they will work con 1.6 too
SimpleGrid.cpp line 305 change
- Code:
mHydrax->getMesh()->getEntity()->getParentSceneNode()->getWorldTransforms(&mWorldMatrix);
with
- Code:
#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:
mEntity->getParentSceneNode()->getWorldTransforms(&mWorldMatrix);
with
- Code:
#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:
mTmpSN->getWorldTransforms(&mWorldMatrix);
with
- Code:
#if OGRE_VERSION_MAJOR >= 1 && OGRE_VERSION_MINOR >= 7
mWorldMatrix = mTmpSN->_getFullTransform();
#else
mTmpSN->getWorldTransforms(&mWorldMatrix);
#endif
again in the same file, change
- Code:
mEntity->getParentSceneNode()->getWorldTransforms(&mWorldMatrix);
with
- Code:
#if OGRE_VERSION_MAJOR >= 1 && OGRE_VERSION_MINOR >= 7
mWorldMatrix = mEntity->getParentSceneNode()->_getFullTransform();
#else
mEntity->getParentSceneNode()->getWorldTransforms(&mWorldMatrix);
#endif
and
- Code:
mTmpSN->getWorldTransforms(&mWorldMatrix);
with
- Code:
#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:
std::vector<Ogre::String> Cmpnts = Ogre::StringUtil::split(CfgFile.getSetting("Components"), "|");
to
- Code:
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
本文提供了Hydrax 0.5.1与Ogre 1.7结合使用的编译指导,介绍了针对不同版本的Ogre进行代码适配的方法,包括如何替换获取世界变换矩阵的函数调用,以及对配置文件读取组件列表的修改。
518

被折叠的 条评论
为什么被折叠?



