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 // undefine this to not require new angular units where applicable
00029 #define OGRE_FORCE_ANGLE_TYPES
00030 
00031 // Platform-specific stuff
00032 #include "OgrePlatform.h"
00033 
00034 #if OGRE_COMPILER == COMPILER_MSVC
00035 // Turn off warnings generated by long std templates
00036 // This warns about truncation to 255 characters in debug/browse info
00037 #   pragma warning (disable : 4786)
00038 
00039 // disable: "conversion from 'double' to 'float', possible loss of data
00040 #   pragma warning (disable : 4244)
00041 
00042 // disable: "truncation from 'double' to 'float'
00043 #   pragma warning (disable : 4305)
00044 
00045 // disable: "<type> needs to have dll-interface to be used by clients'
00046 // Happens on STL member variables which are not public therefore is ok
00047 #   pragma warning (disable : 4251)
00048 
00049 // disable: "non dll-interface class used as base for dll-interface class"
00050 // Happens when deriving from Singleton because bug in compiler ignores
00051 // template export
00052 #   pragma warning (disable : 4275)
00053 
00054 // disable: "C++ Exception Specification ignored"
00055 // This is because MSVC 6 did not implement all the C++ exception 
00056 // specifications in the ANSI C++ draft.
00057 #   pragma warning( disable : 4290 )
00058 
00059 // disable: "no suitable definition provided for explicit template 
00060 // instantiation request" Occurs in VC7 for no justifiable reason on all 
00061 // #includes of Singleton
00062 #   pragma warning( disable: 4661)
00063 #endif
00064 
00065 #if OGRE_COMPILER == COMPILER_MSVC
00066 #   undef _DEFINE_DEPRECATED_HASH_CLASSES
00067 #   if OGRE_COMP_VER > 1300
00068 #       define _DEFINE_DEPRECATED_HASH_CLASSES 0
00069 #   else
00070 #      define _DEFINE_DEPRECATED_HASH_CLASSES 1
00071 #   endif
00072 #endif
00073 
00074 /* Include all the standard header *after* all the configuration
00075    settings have been made.
00076 */
00077 #include "OgreStdHeaders.h"
00078 
00079 
00080 #include "OgreMemoryManager.h"
00081 
00082 // define the real number values to be used
00083 // default to use 'float' unless precompiler option set
00084 namespace Ogre {
00085     // Define ogre version
00086     #define OGRE_VERSION_MAJOR 0
00087     #define OGRE_VERSION_MINOR 15
00088     #define OGRE_VERSION_PATCH 0
00089     #define OGRE_VERSION_NAME "Hastur"
00090 
00091     #if OGRE_DOUBLE_PRECISION == 1
00092         typedef double Real;
00093     #else
00094         typedef float Real;
00095     #endif
00096 
00097     // define the Char type as either char or wchar_t
00098     #if OGRE_WCHAR_T_STRINGS == 1
00099     #   define OgreChar wchar_t
00100     #   define _TO_CHAR( x ) L##x
00101     #else
00102     #   define OgreChar char
00103     #   define _TO_CHAR( x ) x
00104     #endif
00105 
00106     #ifdef GCC_3_1
00107     #   define HashMap ::__gnu_cxx::hash_map
00108     #else
00109     #   if OGRE_COMPILER == COMPILER_MSVC
00110     #       if OGRE_COMP_VER > 1300 && !defined(_STLP_MSVC)
00111     #           define HashMap ::stdext::hash_map
00112     #       else
00113     #           define HashMap ::std::hash_map
00114     #       endif
00115     #   else
00116     #       define HashMap ::std::hash_map
00117     #   endif
00118     #endif
00119 
00122     typedef unsigned char uchar;
00123     typedef unsigned short ushort;
00124     typedef unsigned int uint;  
00125     typedef unsigned long ulong;
00126 
00128     #define OGRE_DELETE(p)       { if(p) { delete (p);     (p)=NULL; } }
00129     #define OGRE_DELETE_ARRAY(p) { if(p) { delete[] (p);   (p)=NULL; } }
00130 
00131     #if OGRE_WCHAR_T_STRINGS
00132         typedef std::wstring _StringBase;
00133     #else
00134         typedef std::string _StringBase;
00135     #endif
00136     
00137     typedef _StringBase String;
00138 
00139 // Pre-declare classes
00140 // Allows use of pointers in header files without including individual .h
00141 // so decreases dependencies between files
00142     class ActionEvent;
00143     class ActionListener;
00144     class ActionTarget;
00145     class Angle;
00146     class Animation;
00147     class AnimationState;
00148     class AnimationTrack;
00149     class ArchiveEx;
00150     class ArchiveFactory;
00151     class ArchiveManager;
00152     class AutoParamDataSource;
00153     class AxisAlignedBox;
00154     class AxisAlignedBoxSceneQuery;
00155     class Billboard;
00156     class BillboardSet;
00157     class Bone;
00158     class Camera;
00159     class Codec;
00160     class ColourValue;
00161     class ConfigDialog;
00162     template <typename T> class Controller;
00163     template <typename T> class ControllerFunction;
00164     class ControllerManager;
00165     template <typename T> class ControllerValue;
00166     class Cursor;
00167     class DataChunk;
00168     class Degree;
00169     class DynLib;
00170     class DynLibManager;
00171     class EdgeData;
00172     class EdgeListBuilder;
00173     class Entity;
00174     class ErrorDialog;
00175     class EventDispatcher;
00176     class EventMulticaster;
00177     class EventProcessor;
00178     class EventQueue;
00179     class EventTarget;
00180     class ExternalTextureSourceManager;
00181     class Factory;
00182     class Font;
00183     class FontManager;
00184     struct FrameEvent;
00185     class FrameListener;
00186     class Frustum;
00187     class GuiContainer;
00188     class GpuProgram;
00189     class GpuProgramManager;
00190     class GpuProgramUsage;
00191     class GuiElement;
00192     class GuiElementFactory;
00193     class GuiManager;
00194     class HardwareIndexBuffer;
00195     class HardwareOcclusionQuery;
00196     class HardwareVertexBuffer;
00197     class HighLevelGpuProgram;
00198     class HighLevelGpuProgramManager;
00199     class HighLevelGpuProgramFactory;
00200     class IndexData;
00201     class InputEvent;
00202     class InputReader;
00203     class IntersectionSceneQuery;
00204     class IntersectionSceneQueryListener;
00205     class Image;
00206     class KeyEvent;
00207     class KeyFrame;
00208     class KeyListener;
00209     class KeyTarget;
00210     class Light;
00211     class ListSelectionEvent;
00212     class ListSelectionListener;
00213     class ListSelectionTarget;
00214     class Log;
00215     class LogManager;
00216     class Material;
00217     class MaterialManager;
00218     class Math;
00219     class Matrix3;
00220     class Matrix4;
00221     class MemoryManager;
00222     class Mesh;
00223     class MeshSerializer;
00224     class MeshSerializerImpl;
00225     class MeshManager;
00226     class MovableObject;
00227     class MouseEvent;
00228     class MouseListener;
00229     class MouseMotionListener;
00230     class MouseTarget;
00231     class Node;
00232     class Overlay;
00233     class OverlayManager;
00234     class Particle;
00235     class ParticleAffector;
00236     class ParticleAffectorFactory;
00237     class ParticleEmitter;
00238     class ParticleEmitterFactory;
00239     class ParticleSystem;
00240     class ParticleSystemManager;
00241     class Pass;
00242     class PatchMesh;
00243     class PlatformManager;
00244     class Plane;
00245     class PlaneBoundedVolume;
00246     class PositionTarget;
00247     class ProgressiveMesh;
00248     class Profile;
00249     class Profiler;
00250     class Quaternion;
00251     class Radian;
00252     class Ray;
00253     class RaySceneQuery;
00254     class RaySceneQueryListener;
00255     class Renderable;
00256     class RenderPriorityGroup;
00257     class RenderQueue;
00258     class RenderQueueGroup;
00259     class RenderQueueListener;
00260     class RenderSystem;
00261     class RenderSystemCapabilities;
00262     class RenderTarget;
00263     class RenderTargetListener;
00264     class RenderTexture;
00265     class RenderWindow;
00266     class RenderOperation;
00267     class Resource;
00268     class ResourceManager;
00269     class Root;
00270     class SceneManager;
00271     class SceneManagerEnumerator;
00272     class SceneNode;
00273     class SceneQuery;
00274     class SceneQueryListener;
00275     class ScrollEvent;
00276     class ScrollListener;
00277     class ScrollTarget;
00278     class SDDataChunk;
00279     class Serializer;
00280     class ShadowCaster;
00281     class ShadowRenderable;
00282     class SimpleRenderable;
00283     class SimpleSpline;
00284     class Skeleton;
00285     class SkeletonInstance;
00286     class SkeletonManager;
00287     class Sphere;
00288     class SphereSceneQuery;
00289     class StringConverter;
00290     class StringInterface;
00291     class SubEntity;
00292     class SubMesh;
00293     class TagPoint;
00294     class TargetManager;
00295     class Technique;
00296     class ExternalTextureSource;
00297     class TextureUnitState;
00298     class Texture;
00299     class TextureFont;
00300     class TextureManager;
00301     class Timer;
00302     class UserDefinedObject;
00303     class Vector3;
00304     class Vector4;
00305     class Viewport;  
00306     class VertexBufferBinding;
00307     class VertexData;
00308     class VertexDeclaration;
00309     class WireBoundingBox; 
00310 }
00311 
00312 #endif // __OgrePrerequisites_H__
00313 
00314 

Copyright © 2002-2003 by The OGRE Team
Last modified Sun Nov 28 19:48:39 2004