56 lines
1.3 KiB
C++
56 lines
1.3 KiB
C++
#ifndef LifeEngine_h__
|
|
#define LifeEngine_h__
|
|
|
|
#include "render/IRenderer.h"
|
|
//#include "RendererDX10.h"
|
|
#include "render/RenderParams.h"
|
|
#include "PluginServer.h"
|
|
#include "camera/Camera.h"
|
|
#include "Timer.h"
|
|
#include "LString.h"
|
|
#include "IScene.h"
|
|
#include "debug/IDebugDrawer.h"
|
|
#include "RenderWindow.h"
|
|
#include "IRenderOutput.h"
|
|
|
|
namespace LifeGraphics
|
|
{
|
|
class LIFE_EXPORTS LifeEngine
|
|
{
|
|
public:
|
|
float appTime;
|
|
IDebugDrawer* debugDrawer;
|
|
float engine_time;
|
|
LifeEngine();
|
|
~LifeEngine();
|
|
IRenderer* Init(LifeGraphics::RENDERER_TYPE type, RenderParams params);
|
|
IRenderer* GetRenderer();
|
|
PluginServer* GetPluginServer();
|
|
void RenderScene(LifeGraphics::IScene* scene, IRenderOutput* output);
|
|
ResourceManager* GetResourceManager()
|
|
{
|
|
return ResourceManager::me();
|
|
}
|
|
float FrameEnd()
|
|
{
|
|
systemTimer.Stop();
|
|
engine_time = systemTimer.getTimeElapsed();
|
|
appTime += engine_time;
|
|
systemTimer.Start();
|
|
ResourceManager::me()->CollectGarbage(engine_time);
|
|
return engine_time;
|
|
}
|
|
float GetTimeElapsed()
|
|
{
|
|
return engine_time;
|
|
}
|
|
IRenderOutput* CreateRenderOutput(LifeCore::IRenderWindow* wnd);
|
|
private:
|
|
void onWindowResize(LifeCore::IRenderWindow* window);
|
|
IRenderer* g_pRenderer;
|
|
PluginServer g_pluginServer;
|
|
LifeCore::Timer systemTimer;
|
|
};
|
|
}
|
|
|
|
#endif // LifeEngine_h__
|