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 
00083     #if OGRE_DOUBLE_PRECISION == 1
00084         typedef double Real;
00085     #else
00086         typedef float Real;
00087     #endif
00088 
00089     // define the Char type as either char or wchar_t
00090     #if OGRE_WCHAR_T_STRINGS == 1
00091     #   define OgreChar wchar_t
00092     #   define _TO_CHAR( x ) L##x
00093     #else
00094     #   define OgreChar char
00095     #   define _TO_CHAR( x ) x
00096     #endif
00097 
00098     #ifdef GCC_3_1
00099     #   define HashMap ::__gnu_cxx::hash_map
00100     #else
00101     #   if OGRE_COMPILER == COMPILER_MSVC
00102     #       if OGRE_COMP_VER > 1300
00103     #           define HashMap ::stdext::hash_map
00104     #       else
00105     #           define HashMap ::std::hash_map
00106     #       endif
00107     #   else
00108     #       define HashMap ::std::hash_map
00109     #   endif
00110     #endif
00111 
00114     typedef unsigned char uchar;
00115     typedef unsigned short ushort;
00116     typedef unsigned int uint;  
00117     typedef unsigned long ulong;
00118 
00119 // Pre-declare classes
00120 // Allows use of pointers in header files without including individual .h
00121 // so decreases dependencies between files
00122     class ActionEvent;
00123     class ActionListener;
00124     class ActionTarget;
00125     class Animation;
00126     class AnimationState;
00127     class AnimationTrack;
00128     class ArchiveEx;
00129     class ArchiveFactory;
00130     class ArchiveManager;
00131     class AutoParamDataSource;
00132     class AxisAlignedBox;
00133     class AxisAlignedBoxSceneQuery;
00134     class Billboard;
00135     class BillboardSet;
00136     class Bone;
00137     class Camera;
00138     class Codec;
00139     class ColourValue;
00140     class ConfigDialog;
00141     template <typename T> class Controller;
00142     template <typename T> class ControllerFunction;
00143     class ControllerManager;
00144     template <typename T> class ControllerValue;
00145     class Cursor;
00146     class DataChunk;
00147     class DynLib;
00148     class DynLibManager;
00149     class Entity;
00150     class ErrorDialog;
00151     class EventDispatcher;
00152     class EventMulticaster;
00153     class EventProcessor;
00154     class EventQueue;
00155     class EventTarget;
00156     class Factory;
00157     class Font;
00158     class FontManager;
00159     struct FrameEvent;
00160     class FrameListener;
00161     class GuiContainer;
00162     class GpuProgram;
00163     class GpuProgramManager;
00164     class GpuProgramUsage;
00165     class GuiElement;
00166     class GuiElementFactory;
00167     class GuiManager;
00168     class HardwareIndexBuffer;
00169     class HardwareVertexBuffer;
00170     class HighLevelGpuProgram;
00171     class HighLevelGpuProgramManager;
00172     class HighLevelGpuProgramFactory;
00173     class IndexData;
00174     class InputEvent;
00175     class InputReader;
00176     class IntersectionSceneQuery;
00177     class IntersectionSceneQueryListener;
00178     class Image;
00179     class KeyEvent;
00180     class KeyFrame;
00181     class KeyListener;
00182     class KeyTarget;
00183     class Light;
00184     class ListSelectionEvent;
00185     class ListSelectionListener;
00186     class ListSelectionTarget;
00187     class Log;
00188     class LogManager;
00189     class Material;
00190     class MaterialManager;
00191     class Math;
00192     class Matrix3;
00193     class Matrix4;
00194     class MemoryManager;
00195     class Mesh;
00196     class MeshSerializer;
00197     class MeshSerializerImpl;
00198     class MeshManager;
00199     class MovableObject;
00200     class MouseEvent;
00201     class MouseListener;
00202     class MouseMotionListener;
00203     class MouseTarget;
00204     class Node;
00205     class Overlay;
00206     class OverlayManager;
00207     class Particle;
00208     class ParticleAffector;
00209     class ParticleAffectorFactory;
00210     class ParticleEmitter;
00211     class ParticleEmitterFactory;
00212     class ParticleSystem;
00213     class ParticleSystemManager;
00214     class Pass;
00215     class PatchMesh;
00216     class PlatformManager;
00217     class Plane;
00218     class PositionTarget;
00219     class ProgressiveMesh;
00220     class Profile;
00221     class Profiler;
00222     class Quaternion;
00223     class Ray;
00224     class RaySceneQuery;
00225     class RaySceneQueryListener;
00226     class Renderable;
00227     class RenderPriorityGroup;
00228     class RenderQueue;
00229     class RenderQueueGroup;
00230     class RenderQueueListener;
00231     class RenderSystem;
00232     class RenderSystemCapabilities;
00233     class RenderTarget;
00234     class RenderTargetListener;
00235     class RenderTexture;
00236     class RenderWindow;
00237     class RenderOperation;
00238     class Resource;
00239     class ResourceManager;
00240     class SceneManager;
00241     class SceneManagerEnumerator;
00242     class SceneNode;
00243     class SceneQuery;
00244     class SceneQueryListener;
00245     class ScrollEvent;
00246     class ScrollListener;
00247     class ScrollTarget;
00248     class SDDataChunk;
00249     class Serializer;
00250     class SimpleRenderable;
00251     class SimpleSpline;
00252     class Skeleton;
00253     class SkeletonManager;
00254     class Sphere;
00255     class SphereSceneQuery;
00256     class String;
00257     class StringConverter;
00258     class StringInterface;
00259     class SubEntity;
00260     class SubMesh;
00261     class TagPoint;
00262     class TargetManager;
00263     class Technique;
00264     class TextureUnitState;
00265     class Texture;
00266     class TextureFont;
00267     class TextureManager;
00268     class Timer;
00269     class UserDefinedObject;
00270     class Vector3;
00271     class Vector4;
00272     class Viewport;  
00273     class VertexBufferBinding;
00274     class VertexData;
00275     class VertexDeclaration;
00276     class WireBoundingBox; 
00277 }
00278 
00279 #endif // __OgrePrerequisites_H__
00280 
00281 

Copyright © 2002-2003 by The OGRE Team
Last modified Wed Jan 21 00:10:22 2004