Files

35 lines
819 B
C++
Raw Permalink Normal View History

2025-05-13 02:46:21 +03:00
#ifndef PluginServer_h__
#define PluginServer_h__
#pragma once
#pragma warning (disable: 4251)
#define WIN32_LEAN_AND_MEAN
#include <vector>
#include <map>
#include "Plugin.h"
#include "render/IRenderer.h"
#include <winerror.h>
#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<IRenderer*> RendererVector;
typedef std::map<std::string, Plugin*> PluginMap;
private:
RendererVector g_rendererCollection;
PluginMap g_loadedPlugins;
};
}
#endif // PluginServer_h__