00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef KEOS_RENDERAPP_H
00023 #define KEOS_RENDERAPP_H
00024
00025 #include "KeosPrerequisites.h"
00026 #include "KeosRoot.h"
00027 #include "KeosTimer.h"
00028
00029 namespace Keos
00030 {
00031
00035 class KEOS_EXPORT IRenderApp
00036 {
00037 friend IRenderTarget;
00038
00039 public:
00040
00043 IRenderApp()
00044 {
00045 m_pRenderTarget = NULL;
00046 m_bInit = false;
00047 }
00048
00051 bool IsInit()
00052 {
00053 return m_bInit;
00054 }
00055
00058 void SetInit(bool bInit)
00059 {
00060 m_bInit = bInit;
00061 }
00062
00066 virtual void Init(void) = 0;
00067
00070 virtual void Render(void) = 0;
00071
00072
00073
00074
00075 virtual void Update(void) = 0;
00076
00079 virtual void Release(void) = 0;
00080
00084 static IRenderSystem* GetRenderSystem()
00085 {
00086 return CRoot::Instance().GetRenderSystem();
00087 }
00088
00091 IRenderTarget* GetRenderTarget(void)
00092 {
00093 return m_pRenderTarget;
00094 }
00095
00098 static unsigned long GetTime()
00099 {
00100 return CRoot::Instance().GetTimer()->GetMilliseconds();
00101 }
00102
00103 protected:
00105 IRenderTarget* m_pRenderTarget;
00106
00108 bool m_bInit;
00109 };
00110
00111 }
00112
00113 #endif // KEOS_RENDERAPP_H