#ifndef PluginServer_h__ #define PluginServer_h__ #pragma once #pragma warning (disable: 4251) #define WIN32_LEAN_AND_MEAN #include #include #include "Plugin.h" #include "render/IRenderer.h" #include #include "Build.h" namespace LifeGraphics { class LIFE_EXPORTS PluginServer { public: PluginServer(); ~PluginServer(); void RegisterRendererPlugin(IRenderer* renderer); HRESULT LoadPlugin(const std::string& name); IRenderer* GetRenderer(int index) { printf(g_rendererCollection.at(0)->GetRendererName().c_str()); return g_rendererCollection.at(index); } typedef std::vector RendererVector; typedef std::map PluginMap; private: RendererVector g_rendererCollection; PluginMap g_loadedPlugins; }; } #endif // PluginServer_h__