Patch to SVN 2499 for MSVC 2008 / Ogre 1.6

andy

07-10-2008 05:12:21

There are a couple of small issues getting the latest version of OgreOde to compile with MSVC 2008 -- one is a C++ template issue that "hopefully" I've fixed in a correct fashion, however it's hasn't been well tested so sugestions/fixes welcome :)

Regards
Andy

Index: include/OgreOdePreReqs.h
===================================================================
--- include/OgreOdePreReqs.h (revision 2499)
+++ include/OgreOdePreReqs.h (working copy)
@@ -2,9 +2,9 @@
#define _OGREODEPREREQS_H_

#include "Ogre.h"
-#include "OgreNoMemoryMacros.h"
+//#include "OgreNoMemoryMacros.h"
#include "ode/ode.h"
-#include "OgreMemoryMacros.h"
+//#include "OgreMemoryMacros.h"


namespace OgreOde
Index: src/OgreOdeTriangleMeshDataManager.cpp
===================================================================
--- src/OgreOdeTriangleMeshDataManager.cpp (revision 2499)
+++ src/OgreOdeTriangleMeshDataManager.cpp (working copy)
@@ -1,3 +1,4 @@
+#include "OgreOdePrecompiledHeaders.h"
#include "OgreOdeTriangleMeshDataManager.h"

using namespace Ogre;
@@ -3,8 +4,8 @@
using namespace OgreOde;

+template<> OgreOde::TriangleMeshDataManager * Ogre::Singleton<OgreOde::TriangleMeshDataManager>::ms_Singleton = 0;
namespace OgreOde
{

- template<> TriangleMeshDataManager *Ogre::Singleton<TriangleMeshDataManager>::ms_Singleton = 0;

//-----------------------------------------------------------------------
@@ -55,7 +56,7 @@
if(itr != mTriangleMeshDataMap.end())
{

- std::map<Ogre::Vector3, TriangleMeshDataPtr>::iterator itr2;
+ std::map<Ogre::Vector3, OgreOde::TriangleMeshDataPtr,OgreOde::TriangleMeshDataManager::vectorLess>::iterator itr2;

itr2 = itr->second.find(scale);

@@ -85,7 +86,7 @@
TriangleMeshDataPtrMap::iterator itr = mTriangleMeshDataMap.find(name);
if(itr != mTriangleMeshDataMap.end())
{
- std::map<Ogre::Vector3, TriangleMeshDataPtr>::iterator itr2;
+ std::map<Ogre::Vector3, TriangleMeshDataPtr,OgreOde::TriangleMeshDataManager::vectorLess>::iterator itr2;

itr2 = itr->second.find(scale);

Index: loader/include/OgreOde_LoaderPreReqs.h
===================================================================
--- loader/include/OgreOde_LoaderPreReqs.h (revision 2499)
+++ loader/include/OgreOde_LoaderPreReqs.h (working copy)
@@ -3,9 +3,9 @@


#include "Ogre.h"
-#include "OgreNoMemoryMacros.h"
+//#include "OgreNoMemoryMacros.h"
#include "ode/ode.h"
-#include "OgreMemoryMacros.h"
+//#include "OgreMemoryMacros.h"
#include "OgreOde_Core.h"
#include "OgreOde_Prefab.h"

Capashen

15-10-2008 21:06:02

Hello, it seems to work for me on Gentoo Linux, but i need to change one more thing:

Index: include/OgreOdeGeometry.h
===================================================================
--- include/OgreOdeGeometry.h (revision 2504)
+++ include/OgreOdeGeometry.h (working copy)
@@ -394,7 +394,7 @@

void changeTriangleMeshData(TriangleMeshDataPtr dataPtr);

- TriangleMeshDataPtr TriangleMeshGeometry::getTriangleMeshData(){ return _dataPtr; }
+ TriangleMeshDataPtr getTriangleMeshData(){ return _dataPtr; }

~TriangleMeshGeometry();