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