#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__