Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- -----------------------------------------------------------------------------
- This source file is part of OGRE
- (Object-oriented Graphics Rendering Engine)
- For the latest info, see http://www.ogre3d.org/
- Copyright (c) 2000-2014 Torus Knot Software Ltd
- Also see acknowledgements in Readme.html
- You may use this sample code for anything you like, it is not covered by the
- same license as the rest of the engine.
- -----------------------------------------------------------------------------
- */
- /*
- -----------------------------------------------------------------------------
- Filename: StaticPluginLoader.h
- Description: Utility class to load plugins statically
- -----------------------------------------------------------------------------
- */
- #ifndef __StaticPluginLoader_H__
- #define __StaticPluginLoader_H__
- #include "OgrePrerequisites.h"
- #include "OgreRoot.h"
- #include "OgreConfigFile.h"
- // Static plugin headers
- #ifdef OGRE_STATIC_CgProgramManager
- # include "OgreCgPlugin.h"
- #endif
- #ifdef OGRE_STATIC_OctreeSceneManager
- # include "OgreOctreePlugin.h"
- #endif
- #ifdef OGRE_STATIC_ParticleFX
- # include "OgreParticleFXPlugin.h"
- #endif
- #ifdef OGRE_STATIC_BSPSceneManager
- # include "OgreBspSceneManagerPlugin.h"
- #endif
- #ifdef OGRE_STATIC_GL
- # include "OgreGLPlugin.h"
- #endif
- #ifdef OGRE_STATIC_GL3Plus
- # include "OgreGL3PlusPlugin.h"
- #endif
- #ifdef OGRE_STATIC_GLES
- # include "OgreGLESPlugin.h"
- #endif
- #ifdef OGRE_STATIC_GLES2
- # include "OgreGLES2Plugin.h"
- #endif
- #ifdef OGRE_STATIC_Direct3D9
- # include "OgreD3D9Plugin.h"
- #endif
- #ifdef OGRE_STATIC_Direct3D11
- # include "OgreD3D11Plugin.h"
- #endif
- #ifdef OGRE_STATIC_PCZSceneManager
- # include "OgrePCZPlugin.h"
- #endif
- #ifdef OGRE_STATIC_OctreeZone
- # include "OgreOctreeZonePlugin.h"
- #endif
- namespace Ogre
- {
- /** Utility class for loading some plugins statically.
- @remarks
- When loading plugins statically, you are limited to loading plugins
- that are known about at compile time. You should define preprocessor
- symbols depending on which plugins you want to load - the symbol being
- OGRE_STATIC_<pluginname>, with pluginname being the usual name of the
- plugin DLL (no file extension, no debug suffix, and without the Plugin_
- or RenderSystem_ prefix.)
- */
- class StaticPluginLoader
- {
- protected:
- #ifdef OGRE_STATIC_CgProgramManager
- CgPlugin* mCgPlugin;
- #endif
- #ifdef OGRE_STATIC_OctreeSceneManager
- OctreePlugin* mOctreePlugin;
- #endif
- #ifdef OGRE_STATIC_ParticleFX
- ParticleFXPlugin* mParticleFXPlugin;
- #endif
- #ifdef OGRE_STATIC_BSPSceneManager
- BspSceneManagerPlugin* mBSPPlugin;
- #endif
- #ifdef OGRE_STATIC_PCZSceneManager
- PCZPlugin* mPCZPlugin;
- #endif
- #ifdef OGRE_STATIC_OctreeZone
- OctreeZonePlugin* mOctreeZonePlugin;
- #endif
- #ifdef OGRE_STATIC_GL
- GLPlugin* mGLPlugin;
- #endif
- #ifdef OGRE_STATIC_GL3Plus
- GL3PlusPlugin* mGL3PlusPlugin;
- #endif
- #ifdef OGRE_STATIC_GLES
- GLESPlugin* mGLESPlugin;
- #endif
- #ifdef OGRE_STATIC_GLES2
- GLES2Plugin* mGLES2Plugin;
- #endif
- #ifdef OGRE_STATIC_Direct3D9
- D3D9Plugin* mD3D9Plugin;
- #endif
- #ifdef OGRE_STATIC_Direct3D11
- D3D11Plugin* mD3D11Plugin;
- #endif
- public:
- StaticPluginLoader() {}
- /** Load all the enabled plugins against the passed in root object. */
- void load()
- {
- Root& root = Root::getSingleton();
- #ifdef OGRE_STATIC_GL
- mGLPlugin = OGRE_NEW GLPlugin();
- root.installPlugin(mGLPlugin);
- #endif
- #ifdef OGRE_STATIC_GL3Plus
- mGL3PlusPlugin = OGRE_NEW GL3PlusPlugin();
- root.installPlugin(mGL3PlusPlugin);
- #endif
- #ifdef OGRE_STATIC_GLES
- mGLESPlugin = OGRE_NEW GLESPlugin();
- root.installPlugin(mGLESPlugin);
- #endif
- #ifdef OGRE_STATIC_GLES2
- mGLES2Plugin = OGRE_NEW GLES2Plugin();
- root.installPlugin(mGLES2Plugin);
- #endif
- #ifdef OGRE_STATIC_Direct3D9
- mD3D9Plugin = OGRE_NEW D3D9Plugin();
- root.installPlugin(mD3D9Plugin);
- #endif
- #ifdef OGRE_STATIC_Direct3D11
- mD3D11Plugin = OGRE_NEW D3D11Plugin();
- root.installPlugin(mD3D11Plugin);
- #endif
- #ifdef OGRE_STATIC_CgProgramManager
- mCgPlugin = OGRE_NEW CgPlugin();
- root.installPlugin(mCgPlugin);
- #endif
- #ifdef OGRE_STATIC_OctreeSceneManager
- mOctreePlugin = OGRE_NEW OctreePlugin();
- root.installPlugin(mOctreePlugin);
- #endif
- #ifdef OGRE_STATIC_ParticleFX
- mParticleFXPlugin = OGRE_NEW ParticleFXPlugin();
- root.installPlugin(mParticleFXPlugin);
- #endif
- #ifdef OGRE_STATIC_BSPSceneManager
- mBSPPlugin = OGRE_NEW BspSceneManagerPlugin();
- root.installPlugin(mBSPPlugin);
- #endif
- #ifdef OGRE_STATIC_PCZSceneManager
- mPCZPlugin = OGRE_NEW PCZPlugin();
- root.installPlugin(mPCZPlugin);
- #endif
- #ifdef OGRE_STATIC_OctreeZone
- mOctreeZonePlugin = OGRE_NEW OctreeZonePlugin();
- root.installPlugin(mOctreeZonePlugin);
- #endif
- }
- void unload()
- {
- // don't unload plugins, since Root will have done that. Destroy here.
- #ifdef OGRE_STATIC_OctreeZone
- OGRE_DELETE mOctreeZonePlugin;
- #endif
- #ifdef OGRE_STATIC_PCZSceneManager
- OGRE_DELETE mPCZPlugin;
- #endif
- #ifdef OGRE_STATIC_BSPSceneManager
- OGRE_DELETE mBSPPlugin;
- #endif
- #ifdef OGRE_STATIC_ParticleFX
- OGRE_DELETE mParticleFXPlugin;
- #endif
- #ifdef OGRE_STATIC_OctreeSceneManager
- OGRE_DELETE mOctreePlugin;
- #endif
- #ifdef OGRE_STATIC_CgProgramManager
- OGRE_DELETE mCgPlugin;
- #endif
- #ifdef OGRE_STATIC_Direct3D9
- OGRE_DELETE mD3D9Plugin;
- #endif
- #ifdef OGRE_STATIC_Direct3D11
- OGRE_DELETE mD3D11Plugin;
- #endif
- #ifdef OGRE_STATIC_GL
- OGRE_DELETE mGLPlugin;
- #endif
- #ifdef OGRE_STATIC_GL3Plus
- OGRE_DELETE mGL3PlusPlugin;
- #endif
- #ifdef OGRE_STATIC_GLES
- OGRE_DELETE mGLESPlugin;
- #endif
- #ifdef OGRE_STATIC_GLES2
- OGRE_DELETE mGLES2Plugin;
- #endif
- }
- };
- }
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement