Advertisement
Guest User

OgreStaticPluginLoader.h

a guest
Jul 6th, 2014
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 6.17 KB | None | 0 0
  1. /*
  2. -----------------------------------------------------------------------------
  3. This source file is part of OGRE
  4. (Object-oriented Graphics Rendering Engine)
  5. For the latest info, see http://www.ogre3d.org/
  6.  
  7. Copyright (c) 2000-2014 Torus Knot Software Ltd
  8. Also see acknowledgements in Readme.html
  9.  
  10. You may use this sample code for anything you like, it is not covered by the
  11. same license as the rest of the engine.
  12. -----------------------------------------------------------------------------
  13. */
  14. /*
  15. -----------------------------------------------------------------------------
  16. Filename:    StaticPluginLoader.h
  17. Description: Utility class to load plugins statically
  18. -----------------------------------------------------------------------------
  19. */
  20.  
  21. #ifndef __StaticPluginLoader_H__
  22. #define __StaticPluginLoader_H__
  23.  
  24. #include "OgrePrerequisites.h"
  25. #include "OgreRoot.h"
  26. #include "OgreConfigFile.h"
  27.  
  28. // Static plugin headers
  29. #ifdef OGRE_STATIC_CgProgramManager
  30. #  include "OgreCgPlugin.h"
  31. #endif
  32. #ifdef OGRE_STATIC_OctreeSceneManager
  33. #  include "OgreOctreePlugin.h"
  34. #endif
  35. #ifdef OGRE_STATIC_ParticleFX
  36. #  include "OgreParticleFXPlugin.h"
  37. #endif
  38. #ifdef OGRE_STATIC_BSPSceneManager
  39. #  include "OgreBspSceneManagerPlugin.h"
  40. #endif
  41. #ifdef OGRE_STATIC_GL
  42. #  include "OgreGLPlugin.h"
  43. #endif
  44. #ifdef OGRE_STATIC_GL3Plus
  45. #  include "OgreGL3PlusPlugin.h"
  46. #endif
  47. #ifdef OGRE_STATIC_GLES
  48. #  include "OgreGLESPlugin.h"
  49. #endif
  50. #ifdef OGRE_STATIC_GLES2
  51. #  include "OgreGLES2Plugin.h"
  52. #endif
  53. #ifdef OGRE_STATIC_Direct3D9
  54. #  include "OgreD3D9Plugin.h"
  55. #endif
  56. #ifdef OGRE_STATIC_Direct3D11
  57. #  include "OgreD3D11Plugin.h"
  58. #endif
  59. #ifdef OGRE_STATIC_PCZSceneManager
  60. #  include "OgrePCZPlugin.h"
  61. #endif
  62. #ifdef OGRE_STATIC_OctreeZone
  63. #  include "OgreOctreeZonePlugin.h"
  64. #endif
  65.  
  66. namespace Ogre
  67. {
  68.     /** Utility class for loading some plugins statically.
  69.     @remarks
  70.         When loading plugins statically, you are limited to loading plugins
  71.         that are known about at compile time. You should define preprocessor
  72.         symbols depending on which plugins you want to load - the symbol being
  73.         OGRE_STATIC_<pluginname>, with pluginname being the usual name of the
  74.         plugin DLL (no file extension, no debug suffix, and without the Plugin_
  75.         or RenderSystem_ prefix.)
  76.     */
  77.     class StaticPluginLoader
  78.     {
  79.     protected:
  80. #ifdef OGRE_STATIC_CgProgramManager
  81.         CgPlugin* mCgPlugin;
  82. #endif
  83. #ifdef OGRE_STATIC_OctreeSceneManager
  84.         OctreePlugin* mOctreePlugin;
  85. #endif
  86. #ifdef OGRE_STATIC_ParticleFX
  87.         ParticleFXPlugin* mParticleFXPlugin;
  88. #endif
  89. #ifdef OGRE_STATIC_BSPSceneManager
  90.         BspSceneManagerPlugin* mBSPPlugin;
  91. #endif
  92. #ifdef OGRE_STATIC_PCZSceneManager
  93.         PCZPlugin* mPCZPlugin;
  94. #endif
  95. #ifdef OGRE_STATIC_OctreeZone
  96.         OctreeZonePlugin* mOctreeZonePlugin;
  97. #endif
  98. #ifdef OGRE_STATIC_GL
  99.         GLPlugin* mGLPlugin;
  100. #endif
  101. #ifdef OGRE_STATIC_GL3Plus
  102.         GL3PlusPlugin* mGL3PlusPlugin;
  103. #endif
  104. #ifdef OGRE_STATIC_GLES
  105.         GLESPlugin* mGLESPlugin;
  106. #endif
  107. #ifdef OGRE_STATIC_GLES2
  108.         GLES2Plugin* mGLES2Plugin;
  109. #endif
  110. #ifdef OGRE_STATIC_Direct3D9
  111.         D3D9Plugin* mD3D9Plugin;
  112. #endif
  113. #ifdef OGRE_STATIC_Direct3D11
  114.         D3D11Plugin* mD3D11Plugin;
  115. #endif
  116.     public:
  117.         StaticPluginLoader() {}
  118.  
  119.         /** Load all the enabled plugins against the passed in root object. */
  120.         void load()
  121.         {
  122.             Root& root  = Root::getSingleton();
  123. #ifdef OGRE_STATIC_GL
  124.             mGLPlugin = OGRE_NEW GLPlugin();
  125.             root.installPlugin(mGLPlugin);
  126. #endif
  127. #ifdef OGRE_STATIC_GL3Plus
  128.             mGL3PlusPlugin = OGRE_NEW GL3PlusPlugin();
  129.             root.installPlugin(mGL3PlusPlugin);
  130. #endif
  131. #ifdef OGRE_STATIC_GLES
  132.             mGLESPlugin = OGRE_NEW GLESPlugin();
  133.             root.installPlugin(mGLESPlugin);
  134. #endif
  135. #ifdef OGRE_STATIC_GLES2
  136.             mGLES2Plugin = OGRE_NEW GLES2Plugin();
  137.             root.installPlugin(mGLES2Plugin);
  138. #endif
  139. #ifdef OGRE_STATIC_Direct3D9
  140.             mD3D9Plugin = OGRE_NEW D3D9Plugin();
  141.             root.installPlugin(mD3D9Plugin);
  142. #endif
  143.  
  144. #ifdef OGRE_STATIC_Direct3D11
  145.             mD3D11Plugin = OGRE_NEW D3D11Plugin();
  146.             root.installPlugin(mD3D11Plugin);
  147. #endif
  148. #ifdef OGRE_STATIC_CgProgramManager
  149.             mCgPlugin = OGRE_NEW CgPlugin();
  150.             root.installPlugin(mCgPlugin);
  151. #endif
  152. #ifdef OGRE_STATIC_OctreeSceneManager
  153.             mOctreePlugin = OGRE_NEW OctreePlugin();
  154.             root.installPlugin(mOctreePlugin);
  155. #endif
  156. #ifdef OGRE_STATIC_ParticleFX
  157.             mParticleFXPlugin = OGRE_NEW ParticleFXPlugin();
  158.             root.installPlugin(mParticleFXPlugin);
  159. #endif
  160. #ifdef OGRE_STATIC_BSPSceneManager
  161.             mBSPPlugin = OGRE_NEW BspSceneManagerPlugin();
  162.             root.installPlugin(mBSPPlugin);
  163. #endif
  164. #ifdef OGRE_STATIC_PCZSceneManager
  165.             mPCZPlugin = OGRE_NEW PCZPlugin();
  166.             root.installPlugin(mPCZPlugin);
  167. #endif
  168. #ifdef OGRE_STATIC_OctreeZone
  169.             mOctreeZonePlugin = OGRE_NEW OctreeZonePlugin();
  170.             root.installPlugin(mOctreeZonePlugin);
  171. #endif
  172.         }
  173.  
  174.         void unload()
  175.         {
  176.             // don't unload plugins, since Root will have done that. Destroy here.
  177. #ifdef OGRE_STATIC_OctreeZone
  178.             OGRE_DELETE mOctreeZonePlugin;
  179. #endif
  180. #ifdef OGRE_STATIC_PCZSceneManager
  181.             OGRE_DELETE mPCZPlugin;
  182. #endif
  183. #ifdef OGRE_STATIC_BSPSceneManager
  184.             OGRE_DELETE mBSPPlugin;
  185. #endif
  186. #ifdef OGRE_STATIC_ParticleFX
  187.             OGRE_DELETE mParticleFXPlugin;
  188. #endif
  189. #ifdef OGRE_STATIC_OctreeSceneManager
  190.             OGRE_DELETE mOctreePlugin;
  191. #endif
  192. #ifdef OGRE_STATIC_CgProgramManager
  193.             OGRE_DELETE mCgPlugin;
  194. #endif
  195. #ifdef OGRE_STATIC_Direct3D9
  196.             OGRE_DELETE mD3D9Plugin;
  197. #endif
  198. #ifdef OGRE_STATIC_Direct3D11
  199.             OGRE_DELETE mD3D11Plugin;
  200. #endif
  201. #ifdef OGRE_STATIC_GL
  202.             OGRE_DELETE mGLPlugin;
  203. #endif
  204. #ifdef OGRE_STATIC_GL3Plus
  205.             OGRE_DELETE mGL3PlusPlugin;
  206. #endif
  207. #ifdef OGRE_STATIC_GLES
  208.             OGRE_DELETE mGLESPlugin;
  209. #endif
  210. #ifdef OGRE_STATIC_GLES2
  211.             OGRE_DELETE mGLES2Plugin;
  212. #endif
  213.            
  214.         }
  215.  
  216.     };
  217.  
  218. }
  219.  
  220. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement