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://ogre.sourceforge.net/
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 /* Include all the standard header *after* all the configuration
00063    settings have been made.
00064 */
00065 #include "OgreStdHeaders.h"
00066 
00067 
00068 #include "OgreMemoryManager.h"
00069 
00070 // define the real number values to be used
00071 // default to use 'float' unless precompiler option set
00072 namespace Ogre {
00073 
00074     #if OGRE_DOUBLE_PRECISION == 1
00075         typedef double Real;
00076     #else
00077         typedef float Real;
00078     #endif
00079 
00080     // define the Char type as either char or wchar_t
00081     #if OGRE_WCHAR_T_STRINGS == 1
00082     #   define OgreChar wchar_t
00083     #   define _TO_CHAR( x ) L##x
00084     #else
00085     #   define OgreChar char
00086     #   define _TO_CHAR( x ) x
00087     #endif
00088 
00089     #ifdef GCC_3_1
00090     #   define HashMap ::__gnu_cxx::hash_map
00091     #else
00092     #   define HashMap ::std::hash_map
00093     #endif
00094 
00097     typedef unsigned char uchar;
00098     typedef unsigned short ushort;
00099     typedef unsigned int uint;  
00100     typedef unsigned long ulong;
00101 
00102 // Pre-declare classes
00103 // Allows use of pointers in header files without including individual .h
00104 // so decreases dependencies between files
00105     class ActionEvent;
00106     class ActionListener;
00107     class ActionTarget;
00108     class Animation;
00109     class AnimationTrack;
00110     class AnimationState;
00111     class ArchiveEx;
00112     class ArchiveManager;
00113     class ArchiveFactory;
00114     class AxisAlignedBox;
00115     class Billboard;
00116     class BillboardSet;
00117     class Bone;
00118     class Camera;
00119     class Codec;
00120     class ColourValue;
00121     class ControllerManager;
00122     class Controller;
00123     class Cursor;
00124     class DataChunk;
00125     class DynLib;
00126     class DynLibManager;
00127     class Entity;
00128     class EventDispatcher;
00129     class EventMulticaster;
00130     class EventProcessor;
00131     class EventQueue;
00132     class EventTarget;
00133     class Factory;
00134     class Font;
00135     class FontManager;
00136     class FrameListener;
00137     class GuiElement;
00138     class GuiElementFactory;
00139     class GuiContainer;
00140     class GuiManager;
00141     class InputEvent;
00142     class InputReader;
00143     class KeyFrame;
00144     class Light;
00145     class ListSelectionEvent;
00146     class ListSelectionListener;
00147     class ListSelectionTarget;
00148     class LogManager;
00149     class Material;
00150     class MaterialManager;
00151     class Math;
00152     class Matrix3;
00153     class Matrix4;
00154     class MemoryManager;
00155     class Mesh;
00156     class MeshManager;
00157     class MovableObject;
00158     class MouseEvent;
00159     class MouseListener;
00160     class MouseMotionListener;
00161     class Node;
00162     class Overlay;
00163     class OverlayManager;
00164     class Particle;
00165     class ParticleAffector;
00166     class ParticleAffectorFactory;
00167     class ParticleEmitter;
00168     class ParticleEmitterFactory;
00169     class ParticleSystem;
00170     class ParticleSystemManager;
00171     class Plane;
00172     class PositionTarget;
00173     class Quaternion;
00174     class Renderable;
00175     class RenderPriorityGroup;
00176     class RenderQueue;
00177     class RenderQueueGroup;
00178     class RenderQueueListener;
00179     class RenderSystem;
00180     class RenderTarget;
00181     class RenderTargetListener;
00182     class RenderWindow;
00183     class Resource;
00184     class ResourceManager;
00185     class SceneManager;
00186     class SceneManagerEnumerator;
00187     class SceneNode;
00188     class SDDataChunk;
00189     class SimpleRenderable;
00190     class Skeleton;
00191     class SkeletonManager;
00192     class Sphere;
00193     class String;
00194     class StringInterface;
00195     class SubEntity;
00196     class SubMesh;
00197     class TargetManager;
00198     class TextureFont;
00199     class UserDefinedObject;
00200     class Vector3;
00201     class Viewport;  
00202     class WireBoundingBox; 
00203 
00204     struct GeometryData;
00205 }
00206 
00207 #endif // __OgrePrerequisites_H__
00208 

Copyright © 2002 by The OGRE Team