Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

# 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     // Define ogre version
    00046     #define KEOS_VERSION_MAJOR 0
    00047     #define KEOS_VERSION_MINOR 5
    00048     #define KEOS_VERSION_PATCH 0
    00049     #define KEOS_VERSION_NAME "Noel"
    00050
    00051     #ifdef GCC_3_1
    00052     #   define HashMap ::__gnu_cxx::hash_map
    00053     #else
    00054     #   if KEOS_COMPILER == KEOS_COMPILER_MSVC
    00055     #       if KEOS_COMP_VER > 1300 && !defined(_STLP_MSVC)
    00056     #           define HashMap ::stdext::hash_map
    00057     #       else
    00058     #           define HashMap ::std::hash_map
    00059     #       endif
    00060     #   else
    00061     #       define HashMap ::std::hash_map
    00062     #   endif
    00063     #endif
    00064
    00066     #define KEOS_DELETE(p)       { if(p) { delete (p);     (p)=NULL; } }
    00067     #define KEOS_DELETE_ARRAY(p) { if(p) { delete[] (p);   (p)=NULL; } }
    00068
    00069     // Useful typedef
    00070     typedef float Real;
    00071         typedef std::string String;
    00072     typedef unsigned char uchar;
    00073     typedef unsigned short ushort;
    00074     typedef unsigned int uint;
    00075         typedef unsigned long ulong;
    00076     typedef std::vector<String> StringVector;
    00077         typedef std::map<String, String> SettingsMap;
    00078
    00079     #if KEOS_COMPILER == KEOS_COMPILER_MSVC && KEOS_COMP_VER == MSVC_VER_6
    00080     #define size_t size_t
    00081     #else
    00082     #define size_t std::size_t
    00083     #endif
    00084
    00085     #if KEOS_DEBUG_MODE
    00086     #define KEOS_OGL_LIB "RenderSystem_OpenGL_d.dll"
    00087     #define KEOS_D3D9_LIB "RenderSystem_Direct3D9_d.dll"
    00088     #else
    00089     #define KEOS_OGL_LIB "RenderSystem_OpenGL.dll"
    00090     #define KEOS_D3D9_LIB "RenderSystem_Direct3D9.dll"
    00091     #endif
    00092
    00093     #define KEOS_CONFIG_FILE "config.xml"
    00094     #define KEOS_LOG_FILE "keos.log"
    00095     #define KEOS_MEMLEAKS_FILE "memoryleaks.log"
    00096
    00097 // Pre-declare classes
    00098 // Allows use of pointers in header files without including individual .h
    00099 // so decreases dependencies between files
    00100     class CException;
    00101     class CMemoryManager;
    00102     class ILogger;
    00103     class CLoggerFile;
    00104     class CFile;
    00105     class CDynLib;
    00106     class CDynLibManager;
    00107     class IRenderSystem;
    00108     class IRenderWindow;
    00109     class IRenderTarget;
    00110     struct CAssertException;
    00111     struct CBadDelete;
    00112     struct CLoadingFailed;
    00113     struct COutOfMemory;
    00114     struct CUnsupported;
    00115     struct CBadConversion;
    00116     class CRoot;
    00117     class CTimer;
    00118     class CPlatformManager;
    00119     class IBufferBase;
    00120     class CMatrix4;
    00121     class IDeclaration;
    00122     class CColor;
    00123     class CRenderSystemCapabilities;
    00124     class CResourceManager;
    00125     class IResource;
    00126     class CModel;
    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 CMDLQ1Loader;
    00153         class IShaderBase;
    00154         class CShader;
    00155         class CShadersLoader;
    00156 }
    00157
    00158 #endif // KEOS_PREREQUISITES_H
    00159
    00160