Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

OgrePrerequisites.h

Go to the documentation of this file.
00001 /*-------------------------------------------------------------------------
00002 This source file is a part of OGRE
00003 (Object-oriented Graphics Rendering Engine)
00004 
00005 For the latest info, see http://www.ogre3d.org/
00006 
00007 Copyright © 2000-2002 The OGRE Team
00008 Also see acknowledgements in Readme.html
00009 
00010 This library is free software; you can redistribute it and/or modify it
00011 under the terms of the GNU Lesser General Public License (LGPL) as 
00012 published by the Free Software Foundation; either version 2.1 of the 
00013 License, or (at your option) any later version.
00014 
00015 This library is distributed in the hope that it will be useful, but 
00016 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
00017 or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public 
00018 License for more details.
00019 
00020 You should have received a copy of the GNU Lesser General Public License 
00021 along with this library; if not, write to the Free Software Foundation, 
00022 Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA or go to
00023 http://www.gnu.org/copyleft/lesser.txt
00024 -------------------------------------------------------------------------*/
00025 #ifndef __Prerequisites_H__
00026 #define __Prerequisites_H__
00027 
00028 // Platform-specific stuff
00029 #include "OgrePlatform.h"
00030 
00031 #if OGRE_COMPILER == COMPILER_MSVC
00032 // Turn off warnings generated by long std templates
00033 // This warns about truncation to 255 characters in debug/browse info
00034 #   pragma warning (disable : 4786)
00035 
00036 // disable: "conversion from 'double' to 'float', possible loss of data
00037 #   pragma warning (disable : 4244)
00038 
00039 // disable: "truncation from 'double' to 'float'
00040 #   pragma warning (disable : 4305)
00041 
00042 // disable: "<type> needs to have dll-interface to be used by clients'
00043 // Happens on STL member variables which are not public therefore is ok
00044 #   pragma warning (disable : 4251)
00045 
00046 // disable: "non dll-interface class used as base for dll-interface class"
00047 // Happens when deriving from Singleton because bug in compiler ignores
00048 // template export
00049 #   pragma warning (disable : 4275)
00050 
00051 // disable: "C++ Exception Specification ignored"
00052 // This is because MSVC 6 did not implement all the C++ exception 
00053 // specifications in the ANSI C++ draft.
00054 #   pragma warning( disable : 4290 )
00055 
00056 // disable: "no suitable definition provided for explicit template 
00057 // instantiation request" Occurs in VC7 for no justifiable reason on all 
00058 // #includes of Singleton
00059 #   pragma warning( disable: 4661)
00060 #endif
00061 
00062 #if OGRE_COMPILER == COMPILER_MSVC
00063 #   undef _DEFINE_DEPRECATED_HASH_CLASSES
00064 #   if OGRE_COMP_VER > 1300
00065 #       define _DEFINE_DEPRECATED_HASH_CLASSES 0
00066 #   else
00067 #      define _DEFINE_DEPRECATED_HASH_CLASSES 1
00068 #   endif
00069 #endif
00070 
00071 /* Include all the standard header *after* all the configuration
00072    settings have been made.
00073 */
00074 #include "OgreStdHeaders.h"
00075 
00076 
00077 #include "OgreMemoryManager.h"
00078 
00079 // define the real number values to be used
00080 // default to use 'float' unless precompiler option set
00081 namespace Ogre {
00082     // Define ogre version
00083     #define OGRE_VERSION_MAJOR 0
00084     #define OGRE_VERSION_MINOR 14
00085     #define OGRE_VERSION_PATCH 0
00086 
00087     #if OGRE_DOUBLE_PRECISION == 1
00088         typedef double Real;
00089     #else
00090         typedef float Real;
00091     #endif
00092 
00093     // define the Char type as either char or wchar_t
00094     #if OGRE_WCHAR_T_STRINGS == 1
00095     #   define OgreChar wchar_t
00096     #   define _TO_CHAR( x ) L##x
00097     #else
00098     #   define OgreChar char
00099     #   define _TO_CHAR( x ) x
00100     #endif
00101 
00102     #ifdef GCC_3_1
00103     #   define HashMap ::__gnu_cxx::hash_map
00104     #else
00105     #   if OGRE_COMPILER == COMPILER_MSVC
00106     #       if OGRE_COMP_VER > 1300 && !defined(_STLP_MSVC)
00107     #           define HashMap ::stdext::hash_map
00108     #       else
00109     #           define HashMap ::std::hash_map
00110     #       endif
00111     #   else
00112     #       define HashMap ::std::hash_map
00113     #   endif
00114     #endif
00115 
00118     typedef unsigned char uchar;
00119     typedef unsigned short ushort;
00120     typedef unsigned int uint;  
00121     typedef unsigned long ulong;
00122 
00124     #define OGRE_DELETE(p)       { if(p) { delete (p);     (p)=NULL; } }
00125     #define OGRE_DELETE_ARRAY(p) { if(p) { delete[] (p);   (p)=NULL; } }
00126 
00127 
00128 // Pre-declare classes
00129 // Allows use of pointers in header files without including individual .h
00130 // so decreases dependencies between files
00131     class ActionEvent;
00132     class ActionListener;
00133     class ActionTarget;
00134     class ExternalTextureSourceManager;
00135     class Animation;
00136     class AnimationState;
00137     class AnimationTrack;
00138     class ArchiveEx;
00139     class ArchiveFactory;
00140     class ArchiveManager;
00141     class AutoParamDataSource;
00142     class AxisAlignedBox;
00143     class AxisAlignedBoxSceneQuery;
00144     class Billboard;
00145     class BillboardSet;
00146     class Bone;
00147     class Camera;
00148     class Codec;
00149     class ColourValue;
00150     class ConfigDialog;
00151     template <typename T> class Controller;
00152     template <typename T> class ControllerFunction;
00153     class ControllerManager;
00154     template <typename T> class ControllerValue;
00155     class Cursor;
00156     class DataChunk;
00157     class DynLib;
00158     class DynLibManager;
00159     class EdgeData;
00160     class EdgeListBuilder;
00161     class Entity;
00162     class ErrorDialog;
00163     class EventDispatcher;
00164     class EventMulticaster;
00165     class EventProcessor;
00166     class EventQueue;
00167     class EventTarget;
00168     class Factory;
00169     class Font;
00170     class FontManager;
00171     struct FrameEvent;
00172     class FrameListener;
00173     class Frustum;
00174     class GuiContainer;
00175     class GpuProgram;
00176     class GpuProgramManager;
00177     class GpuProgramUsage;
00178     class GuiElement;
00179     class GuiElementFactory;
00180     class GuiManager;
00181     class HardwareIndexBuffer;
00182     class HardwareOcclusionQuery;
00183     class HardwareVertexBuffer;
00184     class HighLevelGpuProgram;
00185     class HighLevelGpuProgramManager;
00186     class HighLevelGpuProgramFactory;
00187     class IndexData;
00188     class InputEvent;
00189     class InputReader;
00190     class IntersectionSceneQuery;
00191     class IntersectionSceneQueryListener;
00192     class Image;
00193     class KeyEvent;
00194     class KeyFrame;
00195     class KeyListener;
00196     class KeyTarget;
00197     class Light;
00198     class ListSelectionEvent;
00199     class ListSelectionListener;
00200     class ListSelectionTarget;
00201     class Log;
00202     class LogManager;
00203     class Material;
00204     class MaterialManager;
00205     class Math;
00206     class Matrix3;
00207     class Matrix4;
00208     class MemoryManager;
00209     class Mesh;
00210     class MeshSerializer;
00211     class MeshSerializerImpl;
00212     class MeshManager;
00213     class MovableObject;
00214     class MouseEvent;
00215     class MouseListener;
00216     class MouseMotionListener;
00217     class MouseTarget;
00218     class Node;
00219     class Overlay;
00220     class OverlayManager;
00221     class Particle;
00222     class ParticleAffector;
00223     class ParticleAffectorFactory;
00224     class ParticleEmitter;
00225     class ParticleEmitterFactory;
00226     class ParticleSystem;
00227     class ParticleSystemManager;
00228     class Pass;
00229     class PatchMesh;
00230     class PlatformManager;
00231     class Plane;
00232     class PlaneBoundedVolume;
00233     class PositionTarget;
00234     class ProgressiveMesh;
00235     class Profile;
00236     class Profiler;
00237     class Quaternion;
00238     class Ray;
00239     class RaySceneQuery;
00240     class RaySceneQueryListener;
00241     class Renderable;
00242     class RenderPriorityGroup;
00243     class RenderQueue;
00244     class RenderQueueGroup;
00245     class RenderQueueListener;
00246     class RenderSystem;
00247     class RenderSystemCapabilities;
00248     class RenderTarget;
00249     class RenderTargetListener;
00250     class RenderTexture;
00251     class RenderWindow;
00252     class RenderOperation;
00253     class Resource;
00254     class ResourceManager;
00255     class Root;
00256     class SceneManager;
00257     class SceneManagerEnumerator;
00258     class SceneNode;
00259     class SceneQuery;
00260     class SceneQueryListener;
00261     class ScrollEvent;
00262     class ScrollListener;
00263     class ScrollTarget;
00264     class SDDataChunk;
00265     class Serializer;
00266     class ShadowCaster;
00267     class ShadowRenderable;
00268     class SimpleRenderable;
00269     class SimpleSpline;
00270     class Skeleton;
00271     class SkeletonInstance;
00272     class SkeletonManager;
00273     class Sphere;
00274     class SphereSceneQuery;
00275     class String;
00276     class StringConverter;
00277     class StringInterface;
00278     class SubEntity;
00279     class SubMesh;
00280     class TagPoint;
00281     class TargetManager;
00282     class Technique;
00283     class ExternalTextureSource;
00284     class TextureUnitState;
00285     class Texture;
00286     class TextureFont;
00287     class TextureManager;
00288     class Timer;
00289     class UserDefinedObject;
00290     class Vector3;
00291     class Vector4;
00292     class Viewport;  
00293     class VertexBufferBinding;
00294     class VertexData;
00295     class VertexDeclaration;
00296     class WireBoundingBox; 
00297 }
00298 
00299 #endif // __OgrePrerequisites_H__
00300 
00301 

Copyright © 2002-2003 by The OGRE Team
Last modified Fri May 14 23:22:34 2004