KeosRenderApp.h

Go to the documentation of this file.
00001 /*
00002  * This source file is part of KEOS (Free 3D Engine)
00003  * For the latest info, see http://www.keosengine.org/
00004  * E-mails : thierry.vouriot@keosengine.org, yeri@keosengine.org
00005  *
00006  * This program is free software; you can redistribute it and/or modify it under
00007  * the terms of the GNU Lesser General Public License as published by the Free Software
00008  * Foundation; either version 2 of the License, or (at your option) any later
00009  * version.
00010  *
00011  * This program is distributed in the hope that it will be useful, but WITHOUT
00012  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
00013  * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
00014  *
00015  * You should have received a copy of the GNU Lesser General Public License along with
00016  * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
00017  * Place - Suite 330, Boston, MA 02111-1307, USA, or go to
00018  * http://www.gnu.org/copyleft/lesser.txt.
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     /* *Update.
00073      *  (Called just before Render function)
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 } // namespace Keos
00112 
00113 #endif // KEOS_RENDERAPP_H

Generated on Fri Mar 9 14:29:03 2007 for Keos by  doxygen 1.5.1-p1