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