00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _LOGIC_H_
00021 #define _LOGIC_H_
00022
00023 #include "IThreadCallable.h"
00024 #include "ILogicCallable.h"
00025 #include "UserEventQueue.h"
00026 #include "IRenderCallable.h"
00027
00028 #include <boost\shared_ptr.hpp>
00029
00030 #include "Scene.h"
00031
00032 namespace TestFrameWork
00033 {
00034
00035 class Logic :
00036 public IThreadCallable
00037 {
00038 public:
00039 Logic(ILogicCallablePtr logic, ScenePtr scene, ScenePtr sceneBuffer);
00040
00041 ~Logic();
00042
00043 void Initialize(void);
00044
00045 UserEventQueue& GetEventQueue(void);
00046
00047 void Run(float elapsedTime);
00048
00049 private:
00050 ILogicCallablePtr m_logic;
00051
00052 TestFrameWork::ScenePtr m_scene;
00053 TestFrameWork::ScenePtr m_sceneBuffer;
00054
00055 UserEventQueue m_events;
00056
00057 void ProcessUserQueue(float elapsedTime);
00058 };
00059
00060 typedef boost::shared_ptr<Logic> LogicPtr;
00061 }
00062
00063 #endif