IrrlichtEngine
irrlicht.h
Go to the documentation of this file.
00001 /* irrlicht.h -- interface of the 'Irrlicht Engine'
00002 
00003   Copyright (C) 2002-2011 Nikolaus Gebhardt
00004 
00005   This software is provided 'as-is', without any express or implied
00006   warranty.  In no event will the authors be held liable for any damages
00007   arising from the use of this software.
00008 
00009   Permission is granted to anyone to use this software for any purpose,
00010   including commercial applications, and to alter it and redistribute it
00011   freely, subject to the following restrictions:
00012 
00013   1. The origin of this software must not be misrepresented; you must not
00014      claim that you wrote the original software. If you use this software
00015      in a product, an acknowledgment in the product documentation would be
00016      appreciated but is not required.
00017   2. Altered source versions must be plainly marked as such, and must not be
00018      misrepresented as being the original software.
00019   3. This notice may not be removed or altered from any source distribution.
00020 
00021   Please note that the Irrlicht Engine is based in part on the work of the
00022   Independent JPEG Group, the zlib and the libPng. This means that if you use
00023   the Irrlicht Engine in your product, you must acknowledge somewhere in your
00024   documentation that you've used the IJG code. It would also be nice to mention
00025   that you use the Irrlicht Engine, the zlib and libPng. See the README files
00026   in the jpeglib, the zlib and libPng for further informations.
00027 */
00028 
00029 #ifndef __IRRLICHT_H_INCLUDED__
00030 #define __IRRLICHT_H_INCLUDED__
00031 
00032 #include "IrrCompileConfig.h"
00033 #include "aabbox3d.h"
00034 #include "CDynamicMeshBuffer.h"
00035 #include "CIndexBuffer.h"
00036 #include "CMeshBuffer.h"
00037 #include "coreutil.h"
00038 #include "CVertexBuffer.h"
00039 #include "dimension2d.h"
00040 #include "ECullingTypes.h"
00041 #include "EDebugSceneTypes.h"
00042 #include "EDriverFeatures.h"
00043 #include "EDriverTypes.h"
00044 #include "EGUIAlignment.h"
00045 #include "EGUIElementTypes.h"
00046 #include "EHardwareBufferFlags.h"
00047 #include "EMaterialFlags.h"
00048 #include "EMaterialTypes.h"
00049 #include "EMeshWriterEnums.h"
00050 #include "EMessageBoxFlags.h"
00051 #include "ESceneNodeAnimatorTypes.h"
00052 #include "ESceneNodeTypes.h"
00053 #include "ETerrainElements.h"
00054 #include "fast_atof.h"
00055 #include "heapsort.h"
00056 #include "IAnimatedMesh.h"
00057 #include "IAnimatedMeshMD2.h"
00058 #include "IAnimatedMeshMD3.h"
00059 #include "IAnimatedMeshSceneNode.h"
00060 #include "IAttributeExchangingObject.h"
00061 #include "IAttributes.h"
00062 #include "IBillboardSceneNode.h"
00063 #include "IBillboardTextSceneNode.h"
00064 #include "IBoneSceneNode.h"
00065 #include "ICameraSceneNode.h"
00066 #include "ICursorControl.h"
00067 #include "IDummyTransformationSceneNode.h"
00068 #include "IDynamicMeshBuffer.h"
00069 #include "IEventReceiver.h"
00070 #include "IFileList.h"
00071 #include "IFileSystem.h"
00072 #include "IGeometryCreator.h"
00073 #include "IGPUProgrammingServices.h"
00074 #include "IGUIButton.h"
00075 #include "IGUICheckBox.h"
00076 #include "IGUIColorSelectDialog.h"
00077 #include "IGUIComboBox.h"
00078 #include "IGUIContextMenu.h"
00079 #include "IGUIEditBox.h"
00080 #include "IGUIElement.h"
00081 #include "IGUIElementFactory.h"
00082 #include "IGUIEnvironment.h"
00083 #include "IGUIFileOpenDialog.h"
00084 #include "IGUIFont.h"
00085 #include "IGUIFontBitmap.h"
00086 #include "IGUIImage.h"
00087 #include "IGUIInOutFader.h"
00088 #include "IGUIListBox.h"
00089 #include "IGUIMeshViewer.h"
00090 #include "IGUIScrollBar.h"
00091 #include "IGUISkin.h"
00092 #include "IGUISpinBox.h"
00093 #include "IGUISpriteBank.h"
00094 #include "IGUIStaticText.h"
00095 #include "IGUITabControl.h"
00096 #include "IGUITable.h"
00097 #include "IGUIToolbar.h"
00098 #include "IGUIWindow.h"
00099 #include "IGUITreeView.h"
00100 #include "IImage.h"
00101 #include "IImageLoader.h"
00102 #include "IImageWriter.h"
00103 #include "IIndexBuffer.h"
00104 #include "ILightSceneNode.h"
00105 #include "ILogger.h"
00106 #include "IMaterialRenderer.h"
00107 #include "IMaterialRendererServices.h"
00108 #include "IMesh.h"
00109 #include "IMeshBuffer.h"
00110 #include "IMeshCache.h"
00111 #include "IMeshLoader.h"
00112 #include "IMeshManipulator.h"
00113 #include "IMeshSceneNode.h"
00114 #include "IMeshWriter.h"
00115 #include "IColladaMeshWriter.h"
00116 #include "IMetaTriangleSelector.h"
00117 #include "IOSOperator.h"
00118 #include "IParticleSystemSceneNode.h" // also includes all emitters and attractors
00119 #include "IQ3LevelMesh.h"
00120 #include "IQ3Shader.h"
00121 #include "IReadFile.h"
00122 #include "IReferenceCounted.h"
00123 #include "irrArray.h"
00124 #include "IrrlichtDevice.h"
00125 #include "irrList.h"
00126 #include "irrMap.h"
00127 #include "irrMath.h"
00128 #include "irrString.h"
00129 #include "irrTypes.h"
00130 #include "path.h"
00131 #include "irrXML.h"
00132 #include "ISceneCollisionManager.h"
00133 #include "ISceneLoader.h"
00134 #include "ISceneManager.h"
00135 #include "ISceneNode.h"
00136 #include "ISceneNodeAnimator.h"
00137 #include "ISceneNodeAnimatorCameraFPS.h"
00138 #include "ISceneNodeAnimatorCameraMaya.h"
00139 #include "ISceneNodeAnimatorCollisionResponse.h"
00140 #include "ISceneNodeAnimatorFactory.h"
00141 #include "ISceneNodeFactory.h"
00142 #include "ISceneUserDataSerializer.h"
00143 #include "IShaderConstantSetCallBack.h"
00144 #include "IShadowVolumeSceneNode.h"
00145 #include "ISkinnedMesh.h"
00146 #include "ITerrainSceneNode.h"
00147 #include "ITextSceneNode.h"
00148 #include "ITexture.h"
00149 #include "ITimer.h"
00150 #include "ITriangleSelector.h"
00151 #include "IVertexBuffer.h"
00152 #include "IVideoDriver.h"
00153 #include "IVideoModeList.h"
00154 #include "IVolumeLightSceneNode.h"
00155 #include "IWriteFile.h"
00156 #include "IXMLReader.h"
00157 #include "IXMLWriter.h"
00158 #include "ILightManager.h"
00159 #include "Keycodes.h"
00160 #include "line2d.h"
00161 #include "line3d.h"
00162 #include "matrix4.h"
00163 #include "plane3d.h"
00164 #include "position2d.h"
00165 #include "quaternion.h"
00166 #include "rect.h"
00167 #include "S3DVertex.h"
00168 #include "SAnimatedMesh.h"
00169 #include "SceneParameters.h"
00170 #include "SColor.h"
00171 #include "SExposedVideoData.h"
00172 #include "SIrrCreationParameters.h"
00173 #include "SKeyMap.h"
00174 #include "SLight.h"
00175 #include "SMaterial.h"
00176 #include "SMesh.h"
00177 #include "SMeshBuffer.h"
00178 #include "SMeshBufferLightMap.h"
00179 #include "SMeshBufferTangents.h"
00180 #include "SParticle.h"
00181 #include "SSharedMeshBuffer.h"
00182 #include "SSkinMeshBuffer.h"
00183 #include "SVertexIndex.h"
00184 #include "SViewFrustum.h"
00185 #include "triangle3d.h"
00186 #include "vector2d.h"
00187 #include "vector3d.h"
00188 
00300 #include "SIrrCreationParameters.h"
00301 
00303 namespace irr
00304 {
00306 
00323         extern "C" IRRLICHT_API IrrlichtDevice* IRRCALLCONV createDevice(
00324                 video::E_DRIVER_TYPE deviceType = video::EDT_SOFTWARE,
00325                 // parantheses are necessary for some compilers
00326                 const core::dimension2d<u32>& windowSize = (core::dimension2d<u32>(640,480)),
00327                 u32 bits = 16,
00328                 bool fullscreen = false,
00329                 bool stencilbuffer = false,
00330                 bool vsync = false,
00331                 IEventReceiver* receiver = 0);
00332 
00334         typedef IrrlichtDevice* (IRRCALLCONV *funcptr_createDevice )(
00335                         video::E_DRIVER_TYPE deviceType,
00336                         const core::dimension2d<u32>& windowSize,
00337                         u32 bits,
00338                         bool fullscreen,
00339                         bool stencilbuffer,
00340                         bool vsync,
00341                         IEventReceiver* receiver);
00342 
00343 
00345 
00352         extern "C" IRRLICHT_API IrrlichtDevice* IRRCALLCONV createDeviceEx(
00353                 const SIrrlichtCreationParameters& parameters);
00354 
00356         typedef IrrlichtDevice* (IRRCALLCONV *funcptr_createDeviceEx )( const SIrrlichtCreationParameters& parameters );
00357 
00358 
00359         // THE FOLLOWING IS AN EMPTY LIST OF ALL SUB NAMESPACES
00360         // EXISTING ONLY FOR THE DOCUMENTATION SOFTWARE DOXYGEN.
00361 
00363         namespace core
00364         {
00365         }
00366 
00368         namespace gui
00369         {
00370         }
00371 
00373         namespace io
00374         {
00375         }
00376 
00378         namespace scene
00379         {
00380         }
00381 
00383         namespace video
00384         {
00385         }
00386 }
00387 
00392 #endif
00393