You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.1 KiB
C++
46 lines
1.1 KiB
C++
#include "ogreplugin.hpp"
|
|
|
|
#include <OgrePrerequisites.h>
|
|
#include <OgreRoot.h>
|
|
|
|
namespace Files {
|
|
|
|
bool loadOgrePlugin(const std::string &pluginDir, std::string pluginName, Ogre::Root &ogreRoot) {
|
|
std::string pluginExt;
|
|
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
|
|
pluginExt = ".dll";
|
|
#endif
|
|
#if OGRE_PLATFORM == OGRE_PLATFORM_APPLE
|
|
pluginExt = ".framework";
|
|
#endif
|
|
#if OGRE_PLATFORM == OGRE_PLATFORM_LINUX
|
|
pluginExt = ".so";
|
|
#endif
|
|
|
|
// Append plugin suffix if debugging.
|
|
std::string pluginPath;
|
|
#if defined(DEBUG)
|
|
pluginPath = pluginDir + "/" + pluginName + OGRE_PLUGIN_DEBUG_SUFFIX + pluginExt;
|
|
if (boost::filesystem::exists(pluginPath)) {
|
|
ogreRoot.loadPlugin(pluginPath);
|
|
return true;
|
|
}
|
|
else {
|
|
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
|
|
return false;
|
|
#endif //OGRE_PLATFORM == OGRE_PLATFORM_WIN32
|
|
}
|
|
#endif //defined(DEBUG)
|
|
|
|
pluginPath = pluginDir + "/" + pluginName + pluginExt;
|
|
if (boost::filesystem::exists(pluginPath)) {
|
|
ogreRoot.loadPlugin(pluginPath);
|
|
return true;
|
|
}
|
|
else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
}
|