Irrlicht 3D Engine
irrlicht.h
Go to the documentation of this file.
00001 /* irrlicht.h -- interface of the 'Irrlicht Engine'
00002 
00003   Copyright (C) 2002-2012 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 "IRandomizer.h"
00125 #include "IrrlichtDevice.h"
00126 #include "irrList.h"
00127 #include "irrMap.h"
00128 #include "irrMath.h"
00129 #include "irrString.h"
00130 #include "irrTypes.h"
00131 #include "path.h"
00132 #include "irrXML.h"
00133 #include "ISceneCollisionManager.h"
00134 #include "ISceneLoader.h"
00135 #include "ISceneManager.h"
00136 #include "ISceneNode.h"
00137 #include "ISceneNodeAnimator.h"
00138 #include "ISceneNodeAnimatorCameraFPS.h"
00139 #include "ISceneNodeAnimatorCameraMaya.h"
00140 #include "ISceneNodeAnimatorCollisionResponse.h"
00141 #include "ISceneNodeAnimatorFactory.h"
00142 #include "ISceneNodeFactory.h"
00143 #include "ISceneUserDataSerializer.h"
00144 #include "IShaderConstantSetCallBack.h"
00145 #include "IShadowVolumeSceneNode.h"
00146 #include "ISkinnedMesh.h"
00147 #include "ITerrainSceneNode.h"
00148 #include "ITextSceneNode.h"
00149 #include "ITexture.h"
00150 #include "ITimer.h"
00151 #include "ITriangleSelector.h"
00152 #include "IVertexBuffer.h"
00153 #include "IVideoDriver.h"
00154 #include "IVideoModeList.h"
00155 #include "IVolumeLightSceneNode.h"
00156 #include "IWriteFile.h"
00157 #include "IXMLReader.h"
00158 #include "IXMLWriter.h"
00159 #include "ILightManager.h"
00160 #include "Keycodes.h"
00161 #include "line2d.h"
00162 #include "line3d.h"
00163 #include "matrix4.h"
00164 #include "plane3d.h"
00165 #include "position2d.h"
00166 #include "quaternion.h"
00167 #include "rect.h"
00168 #include "S3DVertex.h"
00169 #include "SAnimatedMesh.h"
00170 #include "SceneParameters.h"
00171 #include "SColor.h"
00172 #include "SExposedVideoData.h"
00173 #include "SIrrCreationParameters.h"
00174 #include "SKeyMap.h"
00175 #include "SLight.h"
00176 #include "SMaterial.h"
00177 #include "SMesh.h"
00178 #include "SMeshBuffer.h"
00179 #include "SMeshBufferLightMap.h"
00180 #include "SMeshBufferTangents.h"
00181 #include "SParticle.h"
00182 #include "SSharedMeshBuffer.h"
00183 #include "SSkinMeshBuffer.h"
00184 #include "SVertexIndex.h"
00185 #include "SViewFrustum.h"
00186 #include "triangle3d.h"
00187 #include "vector2d.h"
00188 #include "vector3d.h"
00189 
00301 #include "SIrrCreationParameters.h"
00302 
00304 namespace irr
00305 {
00307 
00324     extern "C" IRRLICHT_API IrrlichtDevice* IRRCALLCONV createDevice(
00325         video::E_DRIVER_TYPE deviceType = video::EDT_SOFTWARE,
00326         // parantheses are necessary for some compilers
00327         const core::dimension2d<u32>& windowSize = (core::dimension2d<u32>(640,480)),
00328         u32 bits = 16,
00329         bool fullscreen = false,
00330         bool stencilbuffer = false,
00331         bool vsync = false,
00332         IEventReceiver* receiver = 0);
00333 
00335     typedef IrrlichtDevice* (IRRCALLCONV *funcptr_createDevice )(
00336             video::E_DRIVER_TYPE deviceType,
00337             const core::dimension2d<u32>& windowSize,
00338             u32 bits,
00339             bool fullscreen,
00340             bool stencilbuffer,
00341             bool vsync,
00342             IEventReceiver* receiver);
00343 
00344 
00346 
00353     extern "C" IRRLICHT_API IrrlichtDevice* IRRCALLCONV createDeviceEx(
00354         const SIrrlichtCreationParameters& parameters);
00355 
00357     typedef IrrlichtDevice* (IRRCALLCONV *funcptr_createDeviceEx )( const SIrrlichtCreationParameters& parameters );
00358 
00359 
00360     // THE FOLLOWING IS AN EMPTY LIST OF ALL SUB NAMESPACES
00361     // EXISTING ONLY FOR THE DOCUMENTATION SOFTWARE DOXYGEN.
00362 
00364     namespace core
00365     {
00366     }
00367 
00369     namespace gui
00370     {
00371     }
00372 
00374     namespace io
00375     {
00376     }
00377 
00379     namespace scene
00380     {
00381     }
00382 
00384     namespace video
00385     {
00386     }
00387 }
00388 
00393 #endif
00394