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