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