KeosPrerequisites.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_PREREQUISITES_H
00023 #define KEOS_PREREQUISITES_H
00024 
00025 // Platform-specific stuff
00026 #include "KeosPlatform.h"
00027 
00028 /* Include all the standard header *after* all the configuration
00029  * settings have been made.
00030  */
00031 #include "KeosStdHeaders.h"
00032 
00033 // Memory manager - DEBUG mode only
00034 #include "KeosMemoryManager.h"
00035 
00036 // Other includes
00037 #include "KeosEnums.h"
00038 #include "KeosVector2.h"
00039 #include "KeosVector3.h"
00040 #include "KeosVector4.h"
00041 #include "KeosSmartPtr.h"
00042 
00043 namespace Keos
00044 {
00045 
00046   // Define ogre version
00047 #define KEOS_VERSION_MAJOR 0
00048 #define KEOS_VERSION_MINOR 5
00049 #define KEOS_VERSION_PATCH 3
00050 #define KEOS_VERSION_NAME "Noel"
00051 
00052 #ifdef GCC_3_1
00053 #   define HashMap ::__gnu_cxx::hash_map
00054 #else
00055 #   if KEOS_COMPILER == KEOS_COMPILER_MSVC
00056 #       if KEOS_COMP_VER > 1300 && !defined(_STLP_MSVC)
00057 #           define HashMap ::stdext::hash_map
00058 #       else
00059 #           define HashMap ::std::hash_map
00060 #       endif
00061 #   else
00062 #       define HashMap ::std::hash_map
00063 #   endif
00064 #endif
00065 
00067 #define KEOS_DELETE(p)       { if(p) { delete (p);     (p)=NULL; } }
00068 #define KEOS_DELETE_ARRAY(p) { if(p) { delete[] (p);   (p)=NULL; } }
00069 
00070   // Useful typedef
00071   typedef float Real;
00072   typedef std::string String;
00073   typedef unsigned char uchar;
00074   typedef unsigned short ushort;
00075   typedef unsigned int uint;
00076   typedef unsigned long ulong;
00077   typedef std::vector<String> StringVector;
00078   typedef std::map<String, String> SettingsMap;
00079 
00080 #if KEOS_COMPILER == KEOS_COMPILER_MSVC && KEOS_COMP_VER == MSVC_VER_6
00081 #define size_t size_t
00082 #else
00083 #define size_t std::size_t
00084 #endif
00085 
00086 #if KEOS_DEBUG_MODE
00087 #define KEOS_OGL_LIB "RenderSystem_OpenGL_d.dll"
00088 #define KEOS_D3D9_LIB "RenderSystem_Direct3D9_d.dll"
00089 #else
00090 #define KEOS_OGL_LIB "RenderSystem_OpenGL.dll"
00091 #define KEOS_D3D9_LIB "RenderSystem_Direct3D9.dll"
00092 #endif
00093 
00094 #define KEOS_CONFIG_FILE "config.xml"
00095 #define KEOS_LOG_FILE "keos.log"
00096 #define KEOS_MEMLEAKS_FILE "memoryleaks.log"
00097 
00098 // Pre-declare classes
00099 // Allows use of pointers in header files without including individual .h
00100 // so decreases dependencies between files
00101   class CException;
00102   class CMemoryManager;
00103   class ILogger;
00104   class CLoggerFile;
00105   class CFile;
00106   class CDynLib;
00107   class CDynLibManager;
00108   class IRenderSystem;
00109   class IRenderWindow;
00110   class IRenderTarget;
00111   struct CAssertException;
00112   struct CBadDelete;
00113   struct CLoadingFailed;
00114   struct COutOfMemory;
00115   struct CUnsupported;
00116   struct CBadConversion;
00117   class CRoot;
00118   class CTimer;
00119   class CPlatformManager;
00120   class IBufferBase;
00121   class CMatrix4;
00122   class IDeclaration;
00123   class CColor;
00124   class CRenderSystemCapabilities;
00125   class CResourceManager;
00126   class IResource;
00127   template <class T> class CVector2;
00128   template <class T> class CVector3;
00129   template <class T> class CVector4;
00130   template <class T> class CBuffer;
00131   template <class T> class ILoader;
00132   template <class T, template <class> class Ownership > class CSmartPtr;
00133   class CMediaManager;
00134   class CResourceManager;
00135   class CImage;
00136   class CRectangle;
00137   class ITextureBase;
00138   class CTexture;
00139   class CFontManager;
00140   class CGraphicString;
00141   class CConsole;
00142   namespace Console
00143   {
00144     class IFunction;
00145     class CFunctor;
00146     class ILook;
00147     class CLookDefault;
00148   }
00149   class IConfigDialog;
00150   class IErrorDialog;
00151   class CMD2Loader;
00152   class CMD2AnimatedLoader;
00153   class CMD3Loader;
00154   class CMDLQ1Loader;
00155   class CMDLQ1AnimatedLoader;
00156   class C3DSLoader;
00157   class COBJLoader;
00158   class IShaderBase;
00159   class CShader;
00160   class CShadersLoader;
00161   class CMeshGeom;
00162   class CMesh;
00163   class CMaterial;
00164   class CAnimatedMeshKF;
00165   class CLight;
00166   class CMeshGen;
00167   class CRadian;
00168   class CDegree;
00169   class CMath;
00170 }
00171 
00172 #endif // KEOS_PREREQUISITES_H
00173 
00174 

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