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.
openmw-tes3mp/components/ogreinit/ogreinit.hpp

76 lines
1.7 KiB
C++

#ifndef OPENMW_COMPONENTS_OGREINIT_H
#define OPENMW_COMPONENTS_OGREINIT_H
#include <vector>
#include <string>
// Static plugin headers
#ifdef ENABLE_PLUGIN_CgProgramManager
# include "OgreCgPlugin.h"
#endif
#ifdef ENABLE_PLUGIN_OctreeSceneManager
# include "OgreOctreePlugin.h"
#endif
#ifdef ENABLE_PLUGIN_ParticleFX
# include "OgreParticleFXPlugin.h"
#endif
#ifdef ENABLE_PLUGIN_GL
# include "OgreGLPlugin.h"
#endif
#ifdef ENABLE_PLUGIN_Direct3D9
# include "OgreD3D9Plugin.h"
#endif
namespace Ogre
{
class ParticleEmitterFactory;
class ParticleAffectorFactory;
class Root;
}
namespace OgreInit
{
/**
* @brief Starts Ogre::Root and loads required plugins and NIF particle factories
*/
class OgreInit
{
public:
OgreInit();
Ogre::Root* init(const std::string &logPath // Path to directory where to store log files
);
~OgreInit();
private:
std::vector<Ogre::ParticleEmitterFactory*> mEmitterFactories;
std::vector<Ogre::ParticleAffectorFactory*> mAffectorFactories;
Ogre::Root* mRoot;
void loadStaticPlugins();
void loadPlugins();
void loadParticleFactories();
#ifdef ENABLE_PLUGIN_CgProgramManager
Ogre::CgPlugin* mCgPlugin;
#endif
#ifdef ENABLE_PLUGIN_OctreeSceneManager
Ogre::OctreePlugin* mOctreePlugin;
#endif
#ifdef ENABLE_PLUGIN_ParticleFX
Ogre::ParticleFXPlugin* mParticleFXPlugin;
#endif
#ifdef ENABLE_PLUGIN_GL
Ogre::GLPlugin* mGLPlugin;
#endif
#ifdef ENABLE_PLUGIN_Direct3D9
Ogre::D3D9Plugin* mD3D9Plugin;
#endif
};
}
#endif