diff options
author | David Walter Seikel | 2013-01-13 17:24:39 +1000 |
---|---|---|
committer | David Walter Seikel | 2013-01-13 17:24:39 +1000 |
commit | 393b5cd1dc438872af89d334ef6e5fcc59f27d47 (patch) | |
tree | 6a14521219942a08a1b95cb2f5a923a9edd60f63 /libraries/irrlicht-1.8/include/irrlicht.h | |
parent | Add a note about rasters suggested start up code. (diff) | |
download | SledjHamr-393b5cd1dc438872af89d334ef6e5fcc59f27d47.zip SledjHamr-393b5cd1dc438872af89d334ef6e5fcc59f27d47.tar.gz SledjHamr-393b5cd1dc438872af89d334ef6e5fcc59f27d47.tar.bz2 SledjHamr-393b5cd1dc438872af89d334ef6e5fcc59f27d47.tar.xz |
Added Irrlicht 1.8, but without all the Windows binaries.
Diffstat (limited to '')
-rw-r--r-- | libraries/irrlicht-1.8/include/irrlicht.h | 394 |
1 files changed, 394 insertions, 0 deletions
diff --git a/libraries/irrlicht-1.8/include/irrlicht.h b/libraries/irrlicht-1.8/include/irrlicht.h new file mode 100644 index 0000000..74783ce --- /dev/null +++ b/libraries/irrlicht-1.8/include/irrlicht.h | |||
@@ -0,0 +1,394 @@ | |||
1 | /* irrlicht.h -- interface of the 'Irrlicht Engine' | ||
2 | |||
3 | Copyright (C) 2002-2012 Nikolaus Gebhardt | ||
4 | |||
5 | This software is provided 'as-is', without any express or implied | ||
6 | warranty. In no event will the authors be held liable for any damages | ||
7 | arising from the use of this software. | ||
8 | |||
9 | Permission is granted to anyone to use this software for any purpose, | ||
10 | including commercial applications, and to alter it and redistribute it | ||
11 | freely, subject to the following restrictions: | ||
12 | |||
13 | 1. The origin of this software must not be misrepresented; you must not | ||
14 | claim that you wrote the original software. If you use this software | ||
15 | in a product, an acknowledgment in the product documentation would be | ||
16 | appreciated but is not required. | ||
17 | 2. Altered source versions must be plainly marked as such, and must not be | ||
18 | misrepresented as being the original software. | ||
19 | 3. This notice may not be removed or altered from any source distribution. | ||
20 | |||
21 | Please note that the Irrlicht Engine is based in part on the work of the | ||
22 | Independent JPEG Group, the zlib and the libPng. This means that if you use | ||
23 | the Irrlicht Engine in your product, you must acknowledge somewhere in your | ||
24 | documentation that you've used the IJG code. It would also be nice to mention | ||
25 | that you use the Irrlicht Engine, the zlib and libPng. See the README files | ||
26 | in the jpeglib, the zlib and libPng for further informations. | ||
27 | */ | ||
28 | |||
29 | #ifndef __IRRLICHT_H_INCLUDED__ | ||
30 | #define __IRRLICHT_H_INCLUDED__ | ||
31 | |||
32 | #include "IrrCompileConfig.h" | ||
33 | #include "aabbox3d.h" | ||
34 | #include "CDynamicMeshBuffer.h" | ||
35 | #include "CIndexBuffer.h" | ||
36 | #include "CMeshBuffer.h" | ||
37 | #include "coreutil.h" | ||
38 | #include "CVertexBuffer.h" | ||
39 | #include "dimension2d.h" | ||
40 | #include "ECullingTypes.h" | ||
41 | #include "EDebugSceneTypes.h" | ||
42 | #include "EDriverFeatures.h" | ||
43 | #include "EDriverTypes.h" | ||
44 | #include "EGUIAlignment.h" | ||
45 | #include "EGUIElementTypes.h" | ||
46 | #include "EHardwareBufferFlags.h" | ||
47 | #include "EMaterialFlags.h" | ||
48 | #include "EMaterialTypes.h" | ||
49 | #include "EMeshWriterEnums.h" | ||
50 | #include "EMessageBoxFlags.h" | ||
51 | #include "ESceneNodeAnimatorTypes.h" | ||
52 | #include "ESceneNodeTypes.h" | ||
53 | #include "ETerrainElements.h" | ||
54 | #include "fast_atof.h" | ||
55 | #include "heapsort.h" | ||
56 | #include "IAnimatedMesh.h" | ||
57 | #include "IAnimatedMeshMD2.h" | ||
58 | #include "IAnimatedMeshMD3.h" | ||
59 | #include "IAnimatedMeshSceneNode.h" | ||
60 | #include "IAttributeExchangingObject.h" | ||
61 | #include "IAttributes.h" | ||
62 | #include "IBillboardSceneNode.h" | ||
63 | #include "IBillboardTextSceneNode.h" | ||
64 | #include "IBoneSceneNode.h" | ||
65 | #include "ICameraSceneNode.h" | ||
66 | #include "ICursorControl.h" | ||
67 | #include "IDummyTransformationSceneNode.h" | ||
68 | #include "IDynamicMeshBuffer.h" | ||
69 | #include "IEventReceiver.h" | ||
70 | #include "IFileList.h" | ||
71 | #include "IFileSystem.h" | ||
72 | #include "IGeometryCreator.h" | ||
73 | #include "IGPUProgrammingServices.h" | ||
74 | #include "IGUIButton.h" | ||
75 | #include "IGUICheckBox.h" | ||
76 | #include "IGUIColorSelectDialog.h" | ||
77 | #include "IGUIComboBox.h" | ||
78 | #include "IGUIContextMenu.h" | ||
79 | #include "IGUIEditBox.h" | ||
80 | #include "IGUIElement.h" | ||
81 | #include "IGUIElementFactory.h" | ||
82 | #include "IGUIEnvironment.h" | ||
83 | #include "IGUIFileOpenDialog.h" | ||
84 | #include "IGUIFont.h" | ||
85 | #include "IGUIFontBitmap.h" | ||
86 | #include "IGUIImage.h" | ||
87 | #include "IGUIInOutFader.h" | ||
88 | #include "IGUIListBox.h" | ||
89 | #include "IGUIMeshViewer.h" | ||
90 | #include "IGUIScrollBar.h" | ||
91 | #include "IGUISkin.h" | ||
92 | #include "IGUISpinBox.h" | ||
93 | #include "IGUISpriteBank.h" | ||
94 | #include "IGUIStaticText.h" | ||
95 | #include "IGUITabControl.h" | ||
96 | #include "IGUITable.h" | ||
97 | #include "IGUIToolbar.h" | ||
98 | #include "IGUIWindow.h" | ||
99 | #include "IGUITreeView.h" | ||
100 | #include "IImage.h" | ||
101 | #include "IImageLoader.h" | ||
102 | #include "IImageWriter.h" | ||
103 | #include "IIndexBuffer.h" | ||
104 | #include "ILightSceneNode.h" | ||
105 | #include "ILogger.h" | ||
106 | #include "IMaterialRenderer.h" | ||
107 | #include "IMaterialRendererServices.h" | ||
108 | #include "IMesh.h" | ||
109 | #include "IMeshBuffer.h" | ||
110 | #include "IMeshCache.h" | ||
111 | #include "IMeshLoader.h" | ||
112 | #include "IMeshManipulator.h" | ||
113 | #include "IMeshSceneNode.h" | ||
114 | #include "IMeshWriter.h" | ||
115 | #include "IColladaMeshWriter.h" | ||
116 | #include "IMetaTriangleSelector.h" | ||
117 | #include "IOSOperator.h" | ||
118 | #include "IParticleSystemSceneNode.h" // also includes all emitters and attractors | ||
119 | #include "IQ3LevelMesh.h" | ||
120 | #include "IQ3Shader.h" | ||
121 | #include "IReadFile.h" | ||
122 | #include "IReferenceCounted.h" | ||
123 | #include "irrArray.h" | ||
124 | #include "IRandomizer.h" | ||
125 | #include "IrrlichtDevice.h" | ||
126 | #include "irrList.h" | ||
127 | #include "irrMap.h" | ||
128 | #include "irrMath.h" | ||
129 | #include "irrString.h" | ||
130 | #include "irrTypes.h" | ||
131 | #include "path.h" | ||
132 | #include "irrXML.h" | ||
133 | #include "ISceneCollisionManager.h" | ||
134 | #include "ISceneLoader.h" | ||
135 | #include "ISceneManager.h" | ||
136 | #include "ISceneNode.h" | ||
137 | #include "ISceneNodeAnimator.h" | ||
138 | #include "ISceneNodeAnimatorCameraFPS.h" | ||
139 | #include "ISceneNodeAnimatorCameraMaya.h" | ||
140 | #include "ISceneNodeAnimatorCollisionResponse.h" | ||
141 | #include "ISceneNodeAnimatorFactory.h" | ||
142 | #include "ISceneNodeFactory.h" | ||
143 | #include "ISceneUserDataSerializer.h" | ||
144 | #include "IShaderConstantSetCallBack.h" | ||
145 | #include "IShadowVolumeSceneNode.h" | ||
146 | #include "ISkinnedMesh.h" | ||
147 | #include "ITerrainSceneNode.h" | ||
148 | #include "ITextSceneNode.h" | ||
149 | #include "ITexture.h" | ||
150 | #include "ITimer.h" | ||
151 | #include "ITriangleSelector.h" | ||
152 | #include "IVertexBuffer.h" | ||
153 | #include "IVideoDriver.h" | ||
154 | #include "IVideoModeList.h" | ||
155 | #include "IVolumeLightSceneNode.h" | ||
156 | #include "IWriteFile.h" | ||
157 | #include "IXMLReader.h" | ||
158 | #include "IXMLWriter.h" | ||
159 | #include "ILightManager.h" | ||
160 | #include "Keycodes.h" | ||
161 | #include "line2d.h" | ||
162 | #include "line3d.h" | ||
163 | #include "matrix4.h" | ||
164 | #include "plane3d.h" | ||
165 | #include "position2d.h" | ||
166 | #include "quaternion.h" | ||
167 | #include "rect.h" | ||
168 | #include "S3DVertex.h" | ||
169 | #include "SAnimatedMesh.h" | ||
170 | #include "SceneParameters.h" | ||
171 | #include "SColor.h" | ||
172 | #include "SExposedVideoData.h" | ||
173 | #include "SIrrCreationParameters.h" | ||
174 | #include "SKeyMap.h" | ||
175 | #include "SLight.h" | ||
176 | #include "SMaterial.h" | ||
177 | #include "SMesh.h" | ||
178 | #include "SMeshBuffer.h" | ||
179 | #include "SMeshBufferLightMap.h" | ||
180 | #include "SMeshBufferTangents.h" | ||
181 | #include "SParticle.h" | ||
182 | #include "SSharedMeshBuffer.h" | ||
183 | #include "SSkinMeshBuffer.h" | ||
184 | #include "SVertexIndex.h" | ||
185 | #include "SViewFrustum.h" | ||
186 | #include "triangle3d.h" | ||
187 | #include "vector2d.h" | ||
188 | #include "vector3d.h" | ||
189 | |||
190 | /*! \mainpage Irrlicht Engine 1.8 API documentation | ||
191 | * | ||
192 | * <div align="center"><img src="logobig.png" ></div> | ||
193 | * | ||
194 | * \section intro Introduction | ||
195 | * | ||
196 | * Welcome to the Irrlicht Engine API documentation. | ||
197 | * Here you'll find any information you'll need to develop applications with | ||
198 | * the Irrlicht Engine. If you are looking for a tutorial on how to start, you'll | ||
199 | * find some on the homepage of the Irrlicht Engine at | ||
200 | * <A HREF="http://irrlicht.sourceforge.net" >irrlicht.sourceforge.net</A> | ||
201 | * or inside the SDK in the examples directory. | ||
202 | * | ||
203 | * The Irrlicht Engine is intended to be an easy-to-use 3d engine, so | ||
204 | * this documentation is an important part of it. If you have any questions or | ||
205 | * suggestions, just send a email to the author of the engine, Nikolaus Gebhardt | ||
206 | * (niko (at) irrlicht3d.org). | ||
207 | * | ||
208 | * | ||
209 | * \section links Links | ||
210 | * | ||
211 | * <A HREF="namespaces.html">Namespaces</A>: A very good place to start reading | ||
212 | * the documentation.<BR> | ||
213 | * <A HREF="annotated.html">Class list</A>: List of all classes with descriptions.<BR> | ||
214 | * <A HREF="functions.html">Class members</A>: Good place to find forgotten features.<BR> | ||
215 | * | ||
216 | * \section irrexample Short example | ||
217 | * | ||
218 | * A simple application, starting up the engine, loading a Quake 2 animated | ||
219 | * model file and the corresponding texture, animating and displaying it | ||
220 | * in front of a blue background and placing a user controlable 3d camera | ||
221 | * would look like the following code. I think this example shows the usage | ||
222 | * of the engine quite well: | ||
223 | * | ||
224 | * \code | ||
225 | * #include <irrlicht.h> | ||
226 | * using namespace irr; | ||
227 | * | ||
228 | * int main() | ||
229 | * { | ||
230 | * // start up the engine | ||
231 | * IrrlichtDevice *device = createDevice(video::EDT_DIRECT3D8, | ||
232 | * core::dimension2d<u32>(640,480)); | ||
233 | * | ||
234 | * video::IVideoDriver* driver = device->getVideoDriver(); | ||
235 | * scene::ISceneManager* scenemgr = device->getSceneManager(); | ||
236 | * | ||
237 | * device->setWindowCaption(L"Hello World!"); | ||
238 | * | ||
239 | * // load and show quake2 .md2 model | ||
240 | * scene::ISceneNode* node = scenemgr->addAnimatedMeshSceneNode( | ||
241 | * scenemgr->getMesh("quake2model.md2")); | ||
242 | * | ||
243 | * // if everything worked, add a texture and disable lighting | ||
244 | * if (node) | ||
245 | * { | ||
246 | * node->setMaterialTexture(0, driver->getTexture("texture.bmp")); | ||
247 | * node->setMaterialFlag(video::EMF_LIGHTING, false); | ||
248 | * } | ||
249 | * | ||
250 | * // add a first person shooter style user controlled camera | ||
251 | * scenemgr->addCameraSceneNodeFPS(); | ||
252 | * | ||
253 | * // draw everything | ||
254 | * while(device->run() && driver) | ||
255 | * { | ||
256 | * driver->beginScene(true, true, video::SColor(255,0,0,255)); | ||
257 | * scenemgr->drawAll(); | ||
258 | * driver->endScene(); | ||
259 | * } | ||
260 | * | ||
261 | * // delete device | ||
262 | * device->drop(); | ||
263 | * return 0; | ||
264 | * } | ||
265 | * \endcode | ||
266 | * | ||
267 | * Irrlicht can load a lot of file formats automaticly, see irr::scene::ISceneManager::getMesh() | ||
268 | * for a detailed list. So if you would like to replace the simple blue screen background by | ||
269 | * a cool Quake 3 Map, optimized by an octree, just insert this code | ||
270 | * somewhere before the while loop: | ||
271 | * | ||
272 | * \code | ||
273 | * // add .pk3 archive to the file system | ||
274 | * device->getFileSystem()->addZipFileArchive("quake3map.pk3"); | ||
275 | * | ||
276 | * // load .bsp file and show it using an octree | ||
277 | * scenemgr->addOctreeSceneNode( | ||
278 | * scenemgr->getMesh("quake3map.bsp")); | ||
279 | * \endcode | ||
280 | * | ||
281 | * As you can see, the engine uses namespaces. Everything in the engine is | ||
282 | * placed into the namespace 'irr', but there are also 5 sub namespaces. | ||
283 | * You can find a list of all namespaces with descriptions at the | ||
284 | * <A HREF="namespaces.html"> namespaces page</A>. | ||
285 | * This is also a good place to start reading the documentation. If you | ||
286 | * don't want to write the namespace names all the time, just use all namespaces like | ||
287 | * this: | ||
288 | * \code | ||
289 | * using namespace core; | ||
290 | * using namespace scene; | ||
291 | * using namespace video; | ||
292 | * using namespace io; | ||
293 | * using namespace gui; | ||
294 | * \endcode | ||
295 | * | ||
296 | * There is a lot more the engine can do, but I hope this gave a short | ||
297 | * overview over the basic features of the engine. For more examples, please take | ||
298 | * a look into the examples directory of the SDK. | ||
299 | */ | ||
300 | |||
301 | #include "SIrrCreationParameters.h" | ||
302 | |||
303 | //! Everything in the Irrlicht Engine can be found in this namespace. | ||
304 | namespace irr | ||
305 | { | ||
306 | //! Creates an Irrlicht device. The Irrlicht device is the root object for using the engine. | ||
307 | /** If you need more parameters to be passed to the creation of the Irrlicht Engine device, | ||
308 | use the createDeviceEx() function. | ||
309 | \param deviceType: Type of the device. This can currently be video::EDT_NULL, | ||
310 | video::EDT_SOFTWARE, video::EDT_BURNINGSVIDEO, video::EDT_DIRECT3D8, video::EDT_DIRECT3D9 and video::EDT_OPENGL. | ||
311 | \param windowSize: Size of the window or the video mode in fullscreen mode. | ||
312 | \param bits: Bits per pixel in fullscreen mode. Ignored if windowed mode. | ||
313 | \param fullscreen: Should be set to true if the device should run in fullscreen. Otherwise | ||
314 | the device runs in windowed mode. | ||
315 | \param stencilbuffer: Specifies if the stencil buffer should be enabled. Set this to true, | ||
316 | if you want the engine be able to draw stencil buffer shadows. Note that not all | ||
317 | devices are able to use the stencil buffer. If they don't no shadows will be drawn. | ||
318 | \param vsync: Specifies vertical syncronisation: If set to true, the driver will wait | ||
319 | for the vertical retrace period, otherwise not. | ||
320 | \param receiver: A user created event receiver. | ||
321 | \return Returns pointer to the created IrrlichtDevice or null if the | ||
322 | device could not be created. | ||
323 | */ | ||
324 | extern "C" IRRLICHT_API IrrlichtDevice* IRRCALLCONV createDevice( | ||
325 | video::E_DRIVER_TYPE deviceType = video::EDT_SOFTWARE, | ||
326 | // parantheses are necessary for some compilers | ||
327 | const core::dimension2d<u32>& windowSize = (core::dimension2d<u32>(640,480)), | ||
328 | u32 bits = 16, | ||
329 | bool fullscreen = false, | ||
330 | bool stencilbuffer = false, | ||
331 | bool vsync = false, | ||
332 | IEventReceiver* receiver = 0); | ||
333 | |||
334 | //! typedef for Function Pointer | ||
335 | typedef IrrlichtDevice* (IRRCALLCONV *funcptr_createDevice )( | ||
336 | video::E_DRIVER_TYPE deviceType, | ||
337 | const core::dimension2d<u32>& windowSize, | ||
338 | u32 bits, | ||
339 | bool fullscreen, | ||
340 | bool stencilbuffer, | ||
341 | bool vsync, | ||
342 | IEventReceiver* receiver); | ||
343 | |||
344 | |||
345 | //! Creates an Irrlicht device with the option to specify advanced parameters. | ||
346 | /** Usually you should used createDevice() for creating an Irrlicht Engine device. | ||
347 | Use this function only if you wish to specify advanced parameters like a window | ||
348 | handle in which the device should be created. | ||
349 | \param parameters: Structure containing advanced parameters for the creation of the device. | ||
350 | See irr::SIrrlichtCreationParameters for details. | ||
351 | \return Returns pointer to the created IrrlichtDevice or null if the | ||
352 | device could not be created. */ | ||
353 | extern "C" IRRLICHT_API IrrlichtDevice* IRRCALLCONV createDeviceEx( | ||
354 | const SIrrlichtCreationParameters& parameters); | ||
355 | |||
356 | //! typedef for Function Pointer | ||
357 | typedef IrrlichtDevice* (IRRCALLCONV *funcptr_createDeviceEx )( const SIrrlichtCreationParameters& parameters ); | ||
358 | |||
359 | |||
360 | // THE FOLLOWING IS AN EMPTY LIST OF ALL SUB NAMESPACES | ||
361 | // EXISTING ONLY FOR THE DOCUMENTATION SOFTWARE DOXYGEN. | ||
362 | |||
363 | //! Basic classes such as vectors, planes, arrays, lists, and so on can be found in this namespace. | ||
364 | namespace core | ||
365 | { | ||
366 | } | ||
367 | |||
368 | //! The gui namespace contains useful classes for easy creation of a graphical user interface. | ||
369 | namespace gui | ||
370 | { | ||
371 | } | ||
372 | |||
373 | //! This namespace provides interfaces for input/output: Reading and writing files, accessing zip archives, xml files, ... | ||
374 | namespace io | ||
375 | { | ||
376 | } | ||
377 | |||
378 | //! All scene management can be found in this namespace: Mesh loading, special scene nodes like octrees and billboards, ... | ||
379 | namespace scene | ||
380 | { | ||
381 | } | ||
382 | |||
383 | //! The video namespace contains classes for accessing the video driver. All 2d and 3d rendering is done here. | ||
384 | namespace video | ||
385 | { | ||
386 | } | ||
387 | } | ||
388 | |||
389 | /*! \file irrlicht.h | ||
390 | \brief Main header file of the irrlicht, the only file needed to include. | ||
391 | */ | ||
392 | |||
393 | #endif | ||
394 | |||