]> git.lizzy.rs Git - irrlicht.git/blob - doc/upgrade-guide.txt
Add back LightManager
[irrlicht.git] / doc / upgrade-guide.txt
1 This file contains API changes between consecutive versions. You can get the
2 relevant information about all changes to the public Irrlicht API needed for
3 upgrading your code (esp. custom scene nodes and GUI elements) to a new Irrlicht
4 version. Since all changes are incremental you should skip forward to the
5 version you use right now and check each note until you reach the desired
6 version.
7 Please note that the changes described here do not contain functional changes,
8 but only syntactical ones. Also, new methods are not documented here and
9 have to be looked up in the API documentation instead.
10
11 Basically, all changes have to be reflected in user code where used. Removed
12 and renamed methods are obviously not existant anymore. A hint is usually given
13 for such changes on how to remedy the situation.
14 Changed signatures of methods might go unnoticed. That need not be a bad thing,
15 e.g. for changes from s32 to u32 the parameters are usually automatically
16 converted by the compiler. However, one should be careful when writing custom
17 scene nodes or GUI elements. It might happen that the methods are not properly
18 chosen as candidates for virtual overloading. So always check that methods in
19 the user code have the proper signatures just as the interface versions. The
20 change hint will help to identify necessary changes.
21
22 Changes for Version 1.2
23 -----------------------
24 Removed compile flag (always used where available)
25 _IRR_LINUX_OPENGL_USE_EXTENSIONS_
26
27 IAnimatedMeshB3d:
28 Removed (no replacement available)
29         virtual void AddMatrixToJoint(s32 jointNumber, core::matrix4* matrix) = 0;
30
31 IGUIElement.h
32 Changed signatures (made const)
33         IGUIElement* getParent() const
34         core::rect<s32> getRelativePosition() const
35
36 IGUITabControl.h
37 Changed signatures (const param)
38         virtual IGUITab* addTab(const wchar_t* caption, s32 id=-1) = 0;
39
40 IImage.h
41 Changed signatures (made const)
42         virtual ECOLOR_FORMAT getColorFormat() const = 0;
43
44 IParticleAffector.h
45 Changed inheritance (from irr:IUnknown)
46         class IParticleAffector : public virtual io::IAttributeExchangingObject
47
48 IParticleEmitter.h
49 Changed inheritance (from irr:IUnknown)
50         class IParticleEmitter : public virtual io::IAttributeExchangingObject
51
52 IParticleSystemSceneNode.h
53 Changed signatures (const param)
54         virtual IParticleEmitter* createPointEmitter(
55                 const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f),
56                 u32 minParticlesPerSecond = 5,
57                 u32 maxParticlesPerSecond = 10,
58                 video::SColor minStartColor = video::SColor(255,0,0,0),
59         virtual IParticleEmitter* createBoxEmitter(
60                 const core::aabbox3df& box = core::aabbox3df(-10,28,-10,10,30,10),
61                 const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f),
62                 u32 minParticlesPerSecond = 5,
63                 u32 maxParticlesPerSecond = 10,
64                 video::SColor minStartColor = video::SColor(255,0,0,0),
65
66         virtual IParticleAffector* createGravityAffector(
67                 const core::vector3df& gravity = core::vector3df(0.0f,-0.03f,0.0f),
68                 u32 timeForceLost = 1000) = 0;
69
70 ISceneManager.h
71 Changed signatures (additional param)
72         virtual ISceneNodeAnimator* createFlyCircleAnimator(const core::vector3df& center,
73                 f32 radius, f32 speed=0.001f, const core::vector3df& direction= core::vector3df ( 0.f, 1.f, 0.f ) ) = 0;
74
75 ITexture.h
76 Changed signatures (made const)
77         virtual ECOLOR_FORMAT getColorFormat() const = 0;
78
79 IVideoDriver.h
80 Changed signatures (changed default param, use ECF_A1R5G5B5 explicitly for old behavior)
81         virtual ITexture* addTexture(const core::dimension2d<s32>& size,
82                         const c8* name, ECOLOR_FORMAT format = ECF_A8R8G8B8) = 0;
83 Changed signatures (made const)
84         virtual ITexture* createRenderTargetTexture(const core::dimension2d<s32>& size) = 0;
85
86 matrix4.h
87 Changed signatures (swapped parameter, it was (col, row) before although the names did not represent this)
88         f32& operator()(s32 row, s32 col);
89         const f32& operator()(s32 row, s32 col) const;
90
91 S3DVertex.h
92 Changed signatures (unconst param)
93         S3DVertex(f32 x, f32 y, f32 z, f32 nx, f32 ny, f32 nz, SColor c, f32 tu, f32 tv);
94         S3DVertex(const core::vector3df& pos, const core::vector3df& normal,
95                 SColor color, const core::vector2d<f32>& tcoords);
96         S3DVertex2TCoords(f32 x, f32 y, f32 z, SColor c, f32 tu, f32 tv, f32 tu2, f32 tv2);
97         S3DVertex2TCoords(const core::vector3df& pos, SColor color,
98                 const core::vector2d<f32>& tcoords, const core::vector2d<f32>& tcoords2);
99         S3DVertex2TCoords(f32 x, f32 y, f32 z, f32 nx, f32 ny, f32 nz, SColor c, f32 tu, f32 tv);
100         S3DVertex2TCoords(const core::vector3df& pos, const core::vector3df& normal,
101                 SColor color, const core::vector2d<f32>& tcoords);
102         S3DVertexTangents(const core::vector3df& pos,
103                 const core::vector2df& tcoords, SColor c);
104
105 SColor.h
106 Changed signatures (changed param types from signed to unsigned)
107         inline u16 RGBA16(u32 r, u32 g, u32 b, u32 a);
108         inline u16 RGB16(u32 r, u32 g, u32 b);
109         inline u16 X8R8G8B8toA1R5G5B5(u32 color);
110         inline u32 A1R5G5B5toA8R8G8B8(u32 color);
111         inline u32 R5G6B5toA8R8G8B8(u16 color);
112         inline u16 R5G6B5toA1R5G5B5(u16 color);
113         inline u16 A1R5G5B5toR5G6B5(u16 color);
114         inline u32 getAlpha(u16 color);
115         inline u32 getRed(u16 color);
116         inline u32 getGreen(u16 color);
117         inline u32 getBlue(u16 color);
118         inline u32 getLuminance(u16 color);
119         inline SColor (u32 a, u32 r, u32 g, u32 b);
120         inline SColor(u32 clr);
121         inline u32 getAlpha() const
122         inline u32 getRed() const
123         inline u32 getGreen() const
124         inline u32 getBlue() const
125         inline void setAlpha(u32 a);
126         inline void setRed(u32 r);
127         inline void setGreen(u32 g);
128         inline void setBlue(u32 b);
129         inline u16 toA1R5G5B5() const
130         inline void toOpenGLColor(u8* dest) const
131         inline void set(u32 a, u32 r, u32 g, u32 b);
132         inline void set(u32 col);
133 Changed signatures (const param)
134         inline SColor getInterpolated(const SColor &other, f32 d) const
135 Changed public member (type changed)
136         u32 color;
137
138
139 Changes for Version 1.3
140 -----------------------
141 Globally renamed Frustrum to Frustum in all signatures and code parts
142
143 IAnimatedMeshB3d.h
144 Renamed methods (small first letter)
145         virtual void setInterpolationMode(s32 mode) = 0;
146         virtual void setAnimateMode(s32 mode) = 0;
147
148 IAnimatedMeshSceneNode.h
149 changed signature (changed types)
150         virtual void setAnimationSpeed(f32 framesPerSecond) = 0;
151
152 ICameraSceneNode.h
153 Renamed methods and changed signature (changed types, frustum renaming)
154         virtual const SViewFrustum* getViewFrustum() const = 0;
155
156 IFileSystem.h
157 Renamed method (from addUnZipFileArchive)
158         virtual bool addFolderFileArchive(const c8* filename, bool ignoreCase = true, bool ignorePaths = true) = 0;
159
160 IGUIContextMenu.h
161 Changed signature (added param)
162         virtual s32 addItem(const wchar_t* text, s32 commandId=-1, bool enabled=true,
163                         bool hasSubMenu=false, bool checked=false) = 0;
164
165 IGUIElement.h
166 Changed inheritance
167         class IGUIElement : public virtual io::IAttributeExchangingObject, public IEventReceiver
168 Changed signature (made const)
169         core::rect<s32> getAbsolutePosition() const
170
171 IGUIEnvironment.h
172 Changed signature (added param)
173         virtual IGUIButton* addButton(const core::rect<s32>& rectangle,
174                 IGUIElement* parent=0, s32 id=-1, const wchar_t* text=0, const wchar_t* tooltiptext = 0) = 0;
175
176 IGUIListBox.h
177 Removed method (Using sprite bank now)
178         virtual void setIconFont(IGUIFont* font) = 0;
179 Change signature (changed types, due to sprite bank)
180         virtual s32 addItem(const wchar_t* text, s32 icon) = 0;
181
182 IGUISkin.h
183 Changed inheritance
184         class IGUISkin : public virtual io::IAttributeExchangingObject
185
186 IGUIToolbar.h
187 Changed signature (Added param for tooltips)
188         virtual IGUIButton* addButton(s32 id=-1, const wchar_t* text=0, const wchar_t* tooltiptext=0,
189                 video::ITexture* img=0, video::ITexture* pressedimg=0,
190                 bool isPushButton=false, bool useAlphaChannel=false) = 0;
191
192 IImage.h
193 Changed signature (made const)
194         virtual u32 getPitch() const = 0;
195
196 IImageWriter.h
197 Changed signature (additional param)
198         virtual bool writeImage(io::IWriteFile *file, IImage *image, u32 param = 0) = 0;
199
200 IMeshBuffer.h
201 Changed signature (changed return type)
202         virtual u32 getVertexCount() const = 0;
203         virtual u32 getIndexCount() const = 0;
204 Removed method (use setBoundingBox instead)
205         virtual core::aabbox3df& getBoundingBox() = 0;
206
207 IMesh.h
208 Changed signature (changed types, made const)
209         virtual u32 getMeshBufferCount() const = 0;
210         virtual IMeshBuffer* getMeshBuffer(u32 nr) const = 0;
211 Removed method (use setBoundingBox instead)
212         virtual core::aabbox3d<f32>& getBoundingBox() = 0;
213
214 IReadFile.h
215 Changed signature (changed types)
216         virtual s32 read(void* buffer, u32 sizeToRead) = 0;
217
218 irrArray.h
219 Changed signature (made const)
220         s32 binary_search(const T& element, s32 left, s32 right) const
221
222 irrMath.h
223 Constant changed
224         const f32 PI                    = 3.14159265359f;
225 Constants removed (use RADTODEG64 or DEGTORAD64 instead)
226         const f64 GRAD_PI               = 180.0 / PI64;
227         const f64 GRAD_PI2              = PI64 / 180.0;
228 Changed signature (added tolerance parameter)
229         inline bool equals(const f32 a, const f32 b, const f32 tolerance = ROUNDING_ERROR_32)
230
231 irrString.h
232 Changed signature (const param)
233         template <class B> string(const B* const c, u32 length);
234         template <class B> string(const B* const c);
235         template <class B> string<T>& operator=(const B* const c);
236         template <class B> string<T> operator+(const B* const c) const
237         bool operator ==(const T* const str) const
238         bool operator !=(const T* const str) const
239         bool equalsn(const T* const str, int len) const
240         void append(const T* const other);
241         s32 findFirstChar(const T* const c, u32 count) const
242         template <class B> s32 findFirstCharNotInList(const B* const c, u32 count) const
243         template <class B> s32 findLastCharNotInList(const B* const c, u32 count) const
244         template <class B> s32 find(const B* const str) const
245         void operator += (const T* const c);
246 Changed signature (changed type from signed)
247         T& operator [](const u32 index) const
248         u32 size() const
249         void append(const string<T>& other, u32 length);
250         void reserve(u32 count);
251         s32 findNext(T c, u32 startPos) const
252         string<T> subString(u32 begin, s32 length) const
253         void erase(u32 index);
254         void reallocate(u32 new_size);
255 Changed signature (added param)
256         s32 findLast(T c, s32 start = -1) const
257
258 ISceneManager.h
259 Changed signature (changed default param from 128 minimalPolysPerNode)
260         virtual ISceneNode* addOctTreeSceneNode(IAnimatedMesh* mesh, ISceneNode* parent=0,
261                 s32 id=-1, s32 minimalPolysPerNode=256, bool alsoAddIfMeshPointerZero=false) = 0;
262         virtual ISceneNode* addOctTreeSceneNode(IMesh* mesh, ISceneNode* parent=0,
263                 s32 id=-1, s32 minimalPolysPerNode=256, bool alsoAddIfMeshPointerZero=false) = 0;
264 Changed signature (added param)
265         virtual ICameraSceneNode* addCameraSceneNodeFPS(ISceneNode* parent = 0,
266                 f32 rotateSpeed = 100.0f, f32 moveSpeed = 500.0f, s32 id=-1,
267                 SKeyMap* keyMapArray=0, s32 keyMapSize=0, bool noVerticalMovement=false,
268                 f32 jumpSpeed = 0.f) = 0;
269
270         virtual IBillboardSceneNode* addBillboardSceneNode(ISceneNode* parent = 0,
271                 const core::dimension2d<f32>& size = core::dimension2d<f32>(10.0f, 10.0f),
272                 const core::vector3df& position = core::vector3df(0,0,0), s32 id=-1,
273                 video::SColor shade_top = 0xFFFFFFFF, video::SColor shade_down = 0xFFFFFFFF) = 0;
274
275         virtual ITerrainSceneNode* addTerrainSceneNode(
276                 const c8* heightMapFileName,
277                 ISceneNode* parent=0, s32 id=-1,
278                 const core::vector3df& position = core::vector3df(0.0f,0.0f,0.0f),
279                 const core::vector3df& rotation = core::vector3df(0.0f,0.0f,0.0f),
280                 const core::vector3df& scale = core::vector3df(1.0f,1.0f,1.0f),
281                 video::SColor vertexColor = video::SColor(255,255,255,255),
282                 s32 maxLOD=5, E_TERRAIN_PATCH_SIZE patchSize=ETPS_17, s32 smoothFactor=0) = 0;
283
284         virtual ITerrainSceneNode* addTerrainSceneNode(
285                 io::IReadFile* heightMapFile,
286                 ISceneNode* parent=0, s32 id=-1,
287                 const core::vector3df& position = core::vector3df(0.0f,0.0f,0.0f),
288                 const core::vector3df& rotation = core::vector3df(0.0f,0.0f,0.0f),
289                 const core::vector3df& scale = core::vector3df(1.0f,1.0f,1.0f),
290                 video::SColor vertexColor = video::SColor(255,255,255,255),
291                 s32 maxLOD=5, E_TERRAIN_PATCH_SIZE patchSize=ETPS_17, s32 smoothFactor=0) = 0;
292 Changed signature (changed return type)
293         virtual u32 registerNodeForRendering(ISceneNode* node,
294                 E_SCENE_NODE_RENDER_PASS pass = ESNRP_AUTOMATIC) = 0;
295
296 ISceneNodeAnimatorCollisionResponse.h
297 Changed signature (made const)
298         virtual void setEllipsoidTranslation(const core::vector3df &translation) = 0;
299
300 ISceneNode.h
301 Renamed method (from OnPreRender)
302         virtual void OnRegisterSceneNode();
303 Renamed method (from OnPostRender)
304         virtual void OnAnimate(u32 timeMs);
305 Changed signature (made const)
306         virtual const core::aabbox3d<f32> getTransformedBoundingBox() const
307         const core::matrix4& getAbsoluteTransformation() const
308         virtual bool isVisible() const
309         virtual s32 getID() const
310         scene::ISceneNode* getParent() const
311         virtual ESCENE_NODE_TYPE getType() const
312 Changed signature (changed type)
313         virtual video::SMaterial& getMaterial(u32 num);
314         void setMaterialTexture(u32 textureLayer, video::ITexture* texture);
315         void setAutomaticCulling( E_CULLING_TYPE state);
316         virtual void setDebugDataVisible(E_DEBUG_SCENE_TYPE visible);
317 Changed signature (changed return type)
318         virtual u32 getMaterialCount();
319         virtual const core::vector3df& getRotation() const
320         E_CULLING_TYPE getAutomaticCulling() const
321 Changed signature (changed return type, made const)
322         E_DEBUG_SCENE_TYPE isDebugDataVisible() const
323
324 ITerrainSceneNode.h
325 Changed signature (changed return type)
326         virtual u32 getIndexCount() = 0;
327
328 ITexture.h
329 Changed signature (changed return type, made const)
330         virtual u32 getPitch() const = 0;
331 Removed method (Available in SMaterial now)
332         core::matrix4& getTransformation();
333
334 IVideoDriver.h
335 Changed signature (changed types)
336         virtual ITexture* getTextureByIndex(u32 index) = 0;
337         virtual void drawVertexPrimitiveList(const void* vertices, u32 vertexCount, const u16* indexList, u32 triangleCount, E_VERTEX_TYPE vType, scene::E_PRIMITIVE_TYPE pType) = 0;
338         virtual void drawIndexedTriangleList(const S3DVertex* vertices,
339                 u32 vertexCount, const u16* indexList, u32 triangleCount) = 0;
340         virtual void drawIndexedTriangleList(const S3DVertex2TCoords* vertices,
341                 u32 vertexCount, const u16* indexList, u32 triangleCount) = 0;
342         virtual void drawIndexedTriangleList(const S3DVertexTangents* vertices,
343                 u32 vertexCount, const u16* indexList, u32 triangleCount) = 0;
344         virtual void drawIndexedTriangleFan(const S3DVertex* vertices,
345                 u32 vertexCount, const u16* indexList, u32 triangleCount) = 0;
346         virtual void drawIndexedTriangleFan(const S3DVertex2TCoords* vertices,
347                 u32 vertexCount, const u16* indexList, u32 triangleCount) = 0;
348         virtual const SLight& getDynamicLight(u32 idx) = 0;
349         virtual IMaterialRenderer* getMaterialRenderer(u32 idx) = 0;
350         virtual const c8* getMaterialRendererName(u32 idx) = 0;
351 Changed signature (const param)
352         virtual void drawMeshBuffer( const scene::IMeshBuffer* mb) = 0;
353         virtual io::IAttributes* createAttributesFromMaterial(const video::SMaterial& material) = 0;
354 Changed signature (added param)
355         virtual u32 getPrimitiveCountDrawn( u32 param = 0 ) = 0;
356         virtual bool writeImageToFile(IImage* image, const c8* filename, u32 param = 0) = 0;
357         virtual IImage* createImageFromData(ECOLOR_FORMAT format,
358                 const core::dimension2d<s32>& size, void *data,
359                 bool ownForeignMemory=false,
360                 bool deleteMemory = true) = 0;
361 Changed signature (changed return types)
362         virtual u32 getMaximalDynamicLightAmount() = 0;
363         virtual u32 getDynamicLightCount() = 0;
364         virtual u32 getMaximalPrimitiveCount() = 0;
365         virtual u32 getMaterialRendererCount() = 0;
366
367 matrix4.h
368 Changed signature (added param)
369         matrix4( eConstructor constructor = EM4CONST_IDENTITY );
370 Changed signature (const param) 
371         f32& operator()(const s32 row, const s32 col);
372         const f32& operator()(const s32 row, const s32 col) const
373 Changed signature (param order) 
374         void transformVect( vector3df& out, const vector3df& in ) const;
375
376 quaternion.h
377 Changed signature (changed return type)
378         void slerp( quaternion q1, const quaternion q2, f32 interpolate );
379
380 SColor.h
381 Renamed method (from getLuminance), changed types
382         inline s32 getAverage(s16 color);
383 Changed signature (changed return types)
384         inline f32 getLuminance() const
385 Changed signature (const param)
386         inline SColorf getInterpolated(const SColorf &other, f32 d) const
387
388 SMaterial.h
389 Constant type changed
390         const u32 MATERIAL_MAX_TEXTURES = 4;
391 Type changed
392         class SMaterial
393 Public members removed (use Textures[] instead)
394         ITexture* Texture1;
395         ITexture* Texture2;
396         ITexture* Texture3;
397         ITexture* Texture4;
398 Public members removed (use setFlag()/getFlag() instead)
399         Flags[]
400 Public members changed (type changed)
401         u32 ZBuffer;
402 Changed signature (made const)
403         inline bool operator!=(const SMaterial& b) const
404
405 SMeshBuffer.h
406 Changed signature (changed param)
407         virtual u32 getVertexCount() const
408         virtual u32 getIndexCount() const
409 Removed method (use setBoundingBox instead)
410         virtual core::aabbox3d<f32>& getBoundingBox();
411
412 SMeshBufferLightMap.h
413 Changed signature (changed param)
414         virtual u32 getVertexCount() const
415         virtual u32 getIndexCount() const
416 Removed method (use setBoundingBox instead)
417         virtual core::aabbox3d<f32>& getBoundingBox();
418
419 SMeshBufferTangents.h
420 Changed signature (changed param)
421         virtual u32 getVertexCount() const
422         virtual u32 getIndexCount() const
423 Removed method (use setBoundingBox instead)
424         virtual core::aabbox3d<f32>& getBoundingBox();
425
426 SMesh.h
427 Changed signature (changed param, made const)
428         virtual u32 getMeshBufferCount() const
429         virtual IMeshBuffer* getMeshBuffer(u32 nr) const
430 Removed method (use setBoundingBox instead);
431         virtual core::aabbox3d<f32>& getBoundingBox();
432
433 vector3d.h
434 Changed signature (changed return type)
435         T getLength() const
436 Changed signature (changed type)
437         vector3d<T> getInterpolated(const vector3d<T>& other, const T d) const
438
439 Changes for Version 1.3.1
440 -------------------------
441 Changed types:
442         SMeshBuffer* types are now template typedefs from CMeshBuffer
443
444 dimension2d.h
445 Changed signature (const param)
446         dimension2d(const T& width, const T& height);
447         dimension2d<T> operator/(const T& scale);
448         dimension2d<T> operator*(const T& scale);
449
450 IAnimatedMeshSceneNode.h
451 Changed signature (made const)
452         virtual s32 getFrameNr() const = 0;
453         virtual s32 getStartFrame() const = 0;
454         virtual s32 getEndFrame() const = 0;
455 Renamed method (from getAbsoluteTransformation)
456         virtual const SMD3QuaterionTag& getMD3TagTransformation( const core::stringc & tagname) = 0;
457
458 IGUIButton.h
459 Renamed method (from getUseAlphaChannel)
460         virtual bool isAlphaChannelUsed() = 0;
461
462 IGUIElementFactory.h
463 Changed signature (made const)
464         EGUI_ELEMENT_TYPE getType() const
465         virtual const c8* getTypeName() const
466
467 IGUIEnvironment.h
468 Changed signature (added param)
469         virtual bool saveGUI(const c8* filename, IGUIElement* start=0) = 0;
470         virtual bool saveGUI(io::IWriteFile* file, IGUIElement* start=0) = 0;
471         virtual bool loadGUI(const c8* filename, IGUIElement* parent=0) = 0;
472         virtual bool loadGUI(io::IReadFile* file, IGUIElement* parent=0) = 0;
473
474 IGUIFontBitmap.h
475 Changed signature (made const)
476         virtual EGUI_FONT_TYPE getType() const { return EGFT_BITMAP; }
477
478 IGUIFont.h
479 Changed signature (made const)
480         virtual EGUI_FONT_TYPE getType() const { return EGFT_CUSTOM; }
481
482 IGUISkin.h
483 Changed signature (added param)
484         virtual IGUIFont* getFont(EGUI_DEFAULT_FONT which=EGDF_DEFAULT) = 0;
485         virtual void setFont(IGUIFont* font, EGUI_DEFAULT_FONT which=EGDF_DEFAULT) = 0;
486 Changed signature (made const)
487         virtual EGUI_SKIN_TYPE getType() const { return EGST_UNKNOWN; };
488
489 IImage.h
490 Changed signature (made const)
491         virtual const core::dimension2d<s32>& getDimension() const = 0;
492         virtual u32 getRedMask() const = 0;
493         virtual u32 getGreenMask() const = 0;
494         virtual u32 getBlueMask() const = 0;
495         virtual u32 getAlphaMask() const = 0;
496 Changed signature (changed return type, made const)
497         virtual u32 getBitsPerPixel() const = 0;
498         virtual u32 getBytesPerPixel() const = 0;
499         virtual u32 getImageDataSizeInBytes() const = 0;
500         virtual u32 getImageDataSizeInPixels() const = 0;
501 Changed signature (changed param type, made const)
502         virtual SColor getPixel(u32 x, u32 y) const = 0;
503
504 IMeshCache.h
505 Changed signature (const param)
506         virtual void removeMesh(const IAnimatedMesh* const mesh) = 0;
507 Changed signature (const param, made const)
508         virtual s32 getMeshIndex(const IAnimatedMesh* const mesh) const = 0;
509         virtual const c8* getMeshFilename(const IAnimatedMesh* const mesh) const = 0;
510         virtual const c8* getMeshFilename(const IMesh* const mesh) const = 0;
511 Changed signature (changed return type, made const)
512         virtual u32 getMeshCount() const = 0;
513 Changed signature (changed param type)
514         virtual IAnimatedMesh* getMeshByIndex(u32 index) = 0;
515 Changed signature (made const)
516         virtual const c8* getMeshFilename(u32 index) const = 0;
517
518 IParticleAffector.h
519 Changed signature (made const)
520         virtual E_PARTICLE_AFFECTOR_TYPE getType() const = 0;
521
522 IParticleEmitter.h
523 Changed signature (made const)
524         virtual E_PARTICLE_EMITTER_TYPE getType() const = 0;
525
526 irrString.h
527 Changed signature (const param)
528         string(const double number);
529 Changed signature (changed return type)
530         string<T>& operator += (T c);
531         string<T>& operator += (const string<T>& other);
532 Changed signature (changed return type, const param)
533         string<T>& operator += (const T* const c);
534         string<T>& operator += (const int i);
535         string<T>& operator += (const double i);
536
537 ISceneManager.h
538 Changed signature (added param)
539         virtual ITerrainSceneNode* addTerrainSceneNode(
540                 const c8* heightMapFileName,
541                 ISceneNode* parent=0, s32 id=-1,
542                 const core::vector3df& position = core::vector3df(0.0f,0.0f,0.0f),
543                 const core::vector3df& rotation = core::vector3df(0.0f,0.0f,0.0f),
544                 const core::vector3df& scale = core::vector3df(1.0f,1.0f,1.0f),
545                 video::SColor vertexColor = video::SColor(255,255,255,255),
546                 s32 maxLOD=5, E_TERRAIN_PATCH_SIZE patchSize=ETPS_17, s32 smoothFactor=0,
547                 bool addAlsoIfHeightmapEmpty = false) = 0;
548         virtual ITerrainSceneNode* addTerrainSceneNode(
549                 io::IReadFile* heightMapFile,
550                 ISceneNode* parent=0, s32 id=-1,
551                 const core::vector3df& position = core::vector3df(0.0f,0.0f,0.0f),
552                 const core::vector3df& rotation = core::vector3df(0.0f,0.0f,0.0f),
553                 const core::vector3df& scale = core::vector3df(1.0f,1.0f,1.0f),
554                 video::SColor vertexColor = video::SColor(255,255,255,255),
555                 s32 maxLOD=5, E_TERRAIN_PATCH_SIZE patchSize=ETPS_17, s32 smoothFactor=0,
556                 bool addAlsoIfHeightmapEmpty = false) = 0;
557         virtual ISceneManager* createNewSceneManager(bool cloneContent=false) = 0;
558
559 ISceneNodeAnimator.h
560 Changed signature (made const)
561         virtual ESCENE_NODE_ANIMATOR_TYPE getType() const
562
563 ITexture.h
564 Changed signature (made const)
565         virtual bool hasMipMaps() const
566
567 IVideoDriver.h
568 Changed signature (reference param)
569         virtual void draw3DBox(const core::aabbox3d<f32>& box,
570                 SColor color = SColor(255,255,255,255)) = 0;
571 Changed signature (added defaults for param)
572         virtual void draw2DImage(video::ITexture* texture,
573                         const core::position2d<s32>& pos,
574                         const core::array<core::rect<s32> >& sourceRects,
575                         const core::array<s32>& indices,
576                         s32 kerningWidth=0,
577                         const core::rect<s32>* clipRect=0,
578                         SColor color=SColor(255,255,255,255),
579                         bool useAlphaChannelOfTexture=false) = 0;
580 Changed signature (changed return type)
581         virtual const SExposedVideoData& getExposedVideoData() = 0;
582
583 line3d.h
584 Changed signature (changed return type)
585         T getLength() const
586
587 matrix4.h
588 Changed type to template class
589         template <class T> class CMatrix4
590         typedef CMatrix4<f32> matrix4;
591 Changed signature (changed return type)
592         T& operator()(const s32 row, const s32 col);
593         const T& operator()(const s32 row, const s32 col) const
594         T& operator[](u32 index);
595         const T& operator[](u32 index) const
596 Changed signature (changed param type)
597         inline CMatrix4<T>& operator=(const T& scalar);
598         const T* pointer() const
599         T* pointer();
600         CMatrix4<T> operator*(const T& scalar) const;
601         CMatrix4<T>& operator*=(const T& scalar);
602         void transformVect(T *out,const core::vector3df &in) const;
603         void rotateVect(T *out,const core::vector3df &in) const;
604         void multiplyWith1x4Matrix(T* matrix) const;
605         CMatrix4<T> interpolate(const core::CMatrix4<T>& b, f32 time) const;
606
607 plane3d.h
608 Renamed method (from existsInterSection)
609         bool existsIntersection(const plane3d<T>& other) const
610
611 quaternion.h
612 Changed signature (unconst param)
613         void slerp( quaternion q1, quaternion q2, f32 interpolate );
614
615 SExposedVideoData.h
616 Removed public member (replaced by X11Display and X11Window)
617         OpenGLLinux.Window;
618
619 SIrrCreationParameters.h
620 Changed public member (changed type for 64bit system support)
621         void* WindowId;
622
623 triangle3d.h
624 Changed method to private
625         bool isOnSameSide(const vector3d<T>& p1, const vector3d<T>& p2,
626                 const vector3d<T>& a, const vector3d<T>& b) const
627
628 vector2d.h
629 Changed signature (changed return value)
630         T getLength() const
631         T getDistanceFrom(const vector2d<T>& other) const
632
633 vector3d.h
634 Changed signature (changed return value)
635         T getDistanceFrom(const vector3d<T>& other) const
636
637 Changes for Version 1.4
638 -----------------------
639 This release had many changes in API method signatures. Many methods have been
640 made const, also several parameter types were changed. The two most noticeable
641 changes (which almost every user of the Irrlicht API will come across) are the
642 renaming of IUnknown to IReferenceCounted and const-ref change of the SEvent
643 structure of the OnEvent method. Another important change: DirectX8 support is
644 now by default disabled, enable the define in IrrCompileConfig.h to restore the
645 old behavior.
646
647 IReferenceCounted.h
648 Renamed Type (from IUnknown). This changed most classes in Irrlicht
649         class IReferenceCounted
650
651 IEventReceiver.h
652 Changed signature (made const)
653         virtual bool OnEvent(const SEvent& event) = 0;
654
655 IrrCompileConfig.h
656 DirectX8 support is now by default disabled
657
658 CMeshBuffer.h
659 Removed method
660         virtual u32 getVertexPitch() const
661
662 fast_atof.h
663 Changed signature to allow optional second parameter
664         u32 strtol10(const char* in, const char** out=0)
665
666 IAnimatedMesh.h
667 Changed inheritance (instead of IReferenceCounted)
668         class IAnimatedMesh : public IMesh
669 Changed signature (made const)
670         virtual u32 getFrameCount() const = 0;
671
672 IAnimatedMeshSceneNode.h
673 Changed signature (changed param type)
674         virtual void setCurrentFrame(f32 frame) = 0;
675 Replaced methods (generalized method getJointNode available)
676         virtual ISceneNode* getMS3DJointNode(const c8* jointName) = 0;
677         virtual ISceneNode* getXJointNode(const c8* jointName) = 0;
678         virtual ISceneNode* getB3DJointNode(const c8* jointName) = 0;
679 Changed signature (changed return type)
680         virtual f32 getFrameNr() const = 0;
681 Changed signature (made const)
682         virtual bool isReadOnlyMaterials() const = 0;
683
684 IAttributeExchangingObject.h
685 Changed signature (made const)
686         virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options=0) const {}
687
688 IAttributes.h
689 Changed signature (made const, changed param type)
690         virtual u32 getAttributeCount() const = 0;
691 Changed signature (added param)
692         virtual bool read(io::IXMLReader* reader, bool readCurrentElementOnly=false, const wchar_t* elementName=0) = 0;
693         virtual bool write(io::IXMLWriter* writer, bool writeXMLHeader=false, const wchar_t* elementName=0) = 0;
694 Changed signature (made const-ref param)
695         virtual void addMatrix(const c8* attributeName, const core::matrix4& v) = 0;
696         virtual void setAttribute(const c8* attributeName, const core::matrix4& v) = 0;
697         virtual void setAttribute(s32 index, const core::matrix4& v) = 0;
698
699 IBillboardSceneNode.h
700 Changed signature (made const)
701         virtual const core::dimension2d<f32>& getSize() const = 0;
702         virtual void getColor(video::SColor & topColor, video::SColor & bottomColor) const = 0;
703
704 ICameraSceneNode.h
705 Changed signature (made const)
706         virtual const core::matrix4& getProjectionMatrix() const = 0;
707         virtual const core::matrix4& getViewMatrix() const = 0;
708         virtual bool OnEvent(const SEvent& event) = 0;
709         virtual f32 getNearValue() const = 0;
710         virtual f32 getFarValue() const = 0;
711         virtual f32 getAspectRatio() const = 0;
712         virtual f32 getFOV() const = 0;
713         virtual bool isInputReceiverEnabled() const = 0;
714         virtual bool isOrthogonal() const 
715
716 ICursorControl.h
717 Changed signature (made const)
718                 virtual bool isVisible() const = 0;
719
720 IFileList.h
721 Changed signature (made const, changed param or return types)
722         virtual u32 getFileCount() const = 0;
723         virtual const c8* getFileName(u32 index) const = 0;
724         virtual const c8* getFullFileName(u32 index) = 0;
725         virtual bool isDirectory(u32 index) const = 0;
726
727 IFileSystem.h   2007-09-17 09:53:10.000000000 +0200
728 Changed signature (made const method and const-ref param)
729         virtual core::stringc getAbsolutePath(const core::stringc& filename) const = 0;
730         virtual core::stringc getFileDir(const core::stringc& filename) const = 0;
731 Changed signature (made const)
732         virtual IFileList* createFileList() const = 0;
733         virtual bool existFile(const c8* filename) const = 0;
734
735 IGUIButton.h
736 Changed signature (made const)
737         virtual bool isPressed() const = 0;
738         virtual bool isAlphaChannelUsed() const = 0;
739         virtual bool isPushButton() const = 0;
740         virtual bool isDrawingBorder() const = 0;
741
742 IGUICheckBox.h
743 Changed signature (made const)
744         virtual bool isChecked() const = 0;
745
746 IGUIComboBox.h
747 Changed signature (made const, changed param or return types)
748         virtual u32 getItemCount() const = 0;
749         virtual const wchar_t* getItem(u32 idx) const = 0;
750         virtual s32 getSelected() const = 0;
751 Changed signature (changed param or return types)
752         virtual u32 addItem(const wchar_t* text) = 0;
753         virtual void removeItem(u32 id) = 0;
754
755 IGUIContextMenu.h
756 Changed signature (changed param or return types)
757         virtual u32 getItemCount() const = 0;
758         virtual u32 addItem(const wchar_t* text, s32 commandId=-1, bool enabled=true, bool hasSubMenu=false, bool checked=false) = 0;
759         virtual void setItemText(u32 idx, const wchar_t* text) = 0;
760         virtual void setItemEnabled(u32 idx, bool enabled) = 0;
761         virtual void setItemChecked(u32 idx, bool enabled) = 0;
762         virtual void removeItem(u32 idx) = 0;
763         virtual void setItemCommandId(u32 idx, s32 id) = 0;
764 Changed signature (made const, changed param or return types)
765         virtual const wchar_t* getItemText(u32 idx) const = 0;
766         virtual bool isItemEnabled(u32 idx) const = 0;
767         virtual bool isItemChecked(u32 idx) const = 0;
768         virtual s32 getSelectedItem() const = 0;
769         virtual s32 getItemCommandId(u32 idx) const = 0;
770         virtual IGUIContextMenu* getSubMenu(u32 idx) const = 0;
771
772 IGUIEditBox.h
773 Changed signature (changed param or return types)
774         virtual void setMax(u32 max) = 0;
775 Changed signature (made const, changed param or return types)
776         virtual u32 getMax() const = 0;
777
778 IGUIElementFactory.h
779 Changed signature (made const)
780         virtual s32 getCreatableGUIElementTypeCount() const = 0;
781         virtual EGUI_ELEMENT_TYPE getCreateableGUIElementType(s32 idx) const = 0;
782         virtual const c8* getCreateableGUIElementTypeName(s32 idx) const = 0;
783         virtual const c8* getCreateableGUIElementTypeName(EGUI_ELEMENT_TYPE type) const = 0;
784
785 IGUIElement.h
786 Changed signature (made const)
787         bool isNotClipped() const
788         virtual bool isVisible() const
789         virtual bool isSubElement() const
790         virtual bool isEnabled() const
791         virtual const wchar_t* getText() const
792         virtual s32 getID() const
793         virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options=0) const
794 Changed signature (made const-ref param or return type)
795         virtual const core::stringw& getToolTipText() const
796         virtual bool OnEvent(const SEvent& event)
797
798 IGUIEnvironment.h
799 Changed signature (changed return type)
800         virtual bool setFocus(IGUIElement* element) = 0;
801         virtual bool removeFocus(IGUIElement* element) = 0;
802 Changed signature (made const)
803         virtual IGUIElement* getFocus() const = 0;
804         virtual bool hasFocus(IGUIElement* element) const = 0;
805         virtual video::IVideoDriver* getVideoDriver() const = 0;
806         virtual io::IFileSystem* getFileSystem() const = 0;
807         virtual IOSOperator* getOSOperator() const = 0;
808         virtual IGUISkin* getSkin() const = 0;
809         virtual IGUIFont* getBuiltInFont() const = 0;
810         virtual IGUIElementFactory* getDefaultGUIElementFactory() const = 0;
811         virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options=0) const =0;
812 Changed signature (made const-ref param or return type)
813         virtual bool postEventFromUser(const SEvent& event) = 0;
814 Changed signature (made const, changed param or return types)
815         virtual u32 getRegisteredGUIElementFactoryCount() const = 0;
816         virtual IGUIElementFactory* getGUIElementFactory(u32 index) const = 0;
817
818 IGUIFileOpenDialog.h
819 Changed signature (made const)
820         virtual const wchar_t* getFileName() const = 0;
821
822 IGUIFontBitmap.h
823 Changed signature (made const)
824         virtual IGUISpriteBank* getSpriteBank() const = 0;
825         virtual u32 getSpriteNoFromChar(const wchar_t *c) const = 0;
826         virtual s32 getKerningWidth(const wchar_t* thisLetter=0, const wchar_t* previousLetter=0) const = 0;
827
828 IGUIFont.h
829 Changed signature (made const)
830         virtual core::dimension2d<s32> getDimension(const wchar_t* text) const = 0;
831         virtual s32 getCharacterFromPos(const wchar_t* text, s32 pixel_x) const = 0;
832         virtual s32 getKerningWidth(const wchar_t* thisLetter=0, const wchar_t* previousLetter=0) const = 0;
833         virtual s32 getKerningHeight() const = 0;
834
835 IGUIListBox.h
836 Changed signature (made const, changed param or return types)
837         virtual u32 getItemCount() const = 0;
838         virtual const wchar_t* getListItem(u32 id) const = 0;
839         virtual s32 getIcon(u32 index) const = 0;
840 Changed signature (changed param or return types)
841         virtual u32 addItem(const wchar_t* text) = 0;
842         virtual u32 addItem(const wchar_t* text, s32 icon) = 0;
843         virtual void removeItem(u32 index) = 0;
844 Changed signature (made const)
845         virtual s32 getSelected() const = 0;
846
847 IGUIMeshViewer.h
848 Changed signature (made const)
849                 virtual const video::SMaterial& getMaterial() const = 0;
850
851 IGUIScrollBar.h
852 Changed signature (made const)
853         virtual s32 getMax() const = 0;
854         virtual s32 getSmallStep() const = 0;
855         virtual s32 getPos() const = 0;
856
857 IGUISkin.h
858 Changed signature (made const)
859         virtual video::SColor getColor(EGUI_DEFAULT_COLOR color) const = 0;
860         virtual s32 getSize(EGUI_DEFAULT_SIZE size) const = 0;
861         virtual const wchar_t* getDefaultText(EGUI_DEFAULT_TEXT text) const = 0;
862         virtual IGUIFont* getFont(EGUI_DEFAULT_FONT which=EGDF_DEFAULT) const = 0;
863         virtual IGUISpriteBank* getSpriteBank() const = 0;
864         virtual u32 getIcon(EGUI_DEFAULT_ICON icon) const = 0;
865
866 IGUISpriteBank.h
867 Changed signature (made const)
868         virtual u32 getTextureCount() const = 0;
869         virtual video::ITexture* getTexture(u32 index) const = 0;
870
871 IGUIStaticText.h
872 Changed signature (made const)
873         virtual IGUIFont* getOverrideFont(void) const = 0;
874         virtual video::SColor const& getOverrideColor(void) const = 0;
875         virtual bool isOverrideColorEnabled(void) const = 0;
876         virtual bool isWordWrapEnabled(void) const = 0;
877         virtual s32 getTextHeight() const = 0;
878         virtual s32 getTextWidth(void) const = 0;
879
880 IGUITabControl.h
881 Changed signature (made const)
882         virtual s32 getNumber() const = 0;
883         virtual s32 getTabCount() const = 0;
884         virtual IGUITab* getTab(s32 idx) const = 0;
885         virtual s32 getActiveTab() const = 0;
886
887 IGUIWindow.h
888 Changed signature (made const)
889         virtual IGUIButton* getCloseButton() const = 0;
890         virtual IGUIButton* getMinimizeButton() const = 0;
891         virtual IGUIButton* getMaximizeButton() const = 0;
892
893 IImageLoader.h
894 Changed signature (made const)
895         virtual bool isALoadableFileExtension(const c8* fileName) const = 0;
896         virtual bool isALoadableFileFormat(io::IReadFile* file) const = 0;
897         virtual IImage* loadImage(io::IReadFile* file) const = 0;
898
899 IImageWriter.h
900 Changed signature (made const)
901         virtual bool isAWriteableFileExtension(const c8* fileName) const = 0;
902         virtual bool writeImage(io::IWriteFile *file, IImage *image, u32 param = 0) const = 0;
903
904 ILogger.h
905 Changed signature (made const)
906         virtual ELOG_LEVEL getLogLevel() const = 0;
907
908 IMaterialRenderer.h
909 Changed signature (made const-ref param)
910         virtual void OnSetMaterial(const SMaterial& material, const SMaterial& lastMaterial, bool resetAllRenderstates, IMaterialRendererServices* services) {};
911 Changed signature (made const)
912         virtual bool isTransparent() const { return false; }
913         virtual s32 getRenderCapability() const { return 0; }
914
915 IMesh.h
916 Changed signature (made const)
917                 virtual IMeshBuffer* getMeshBuffer( const video::SMaterial &material) const = 0;
918
919 IMeshLoader.h
920 Changed signature (made const)
921         virtual bool isALoadableFileExtension(const c8* fileName) const = 0;
922
923 IMeshManipulator.h
924 Removed method (now in IMeshBuffer)
925         virtual void recalculateBoundingBox(scene::IMeshBuffer* buffer) const
926
927 IMeshSceneNode.h
928 Changed signature (made const)
929         virtual bool isReadOnlyMaterials() const = 0;
930
931 IOSOperator.h
932 Changed signature (made const)
933         virtual const wchar_t* getOperationSystemVersion() const = 0;
934         virtual void copyToClipboard(const c8* text) const = 0;
935         virtual c8* getTextFromClipboard() const = 0;   
936         virtual bool getProcessorSpeedMHz(u32* MHz) const = 0;
937         virtual bool getSystemMemory(u32* Total, u32* Avail) const = 0;
938
939 IParticleAffector.h
940 Changed signature (made const)
941         virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options=0) const {}
942
943 IParticleEmitter.h
944 Changed signature (made const)
945         virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options=0) const {}
946
947 IParticleSystemSceneNode.h
948 Changed signature (changed return type, changed param types)
949         virtual IParticlePointEmitter* createPointEmitter(
950                 const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f), 
951                 u32 minParticlesPerSecond = 5,
952                 u32 maxParticlesPerSecond = 10,
953                 const video::SColor& minStartColor = video::SColor(255,0,0,0),
954                 const video::SColor& maxStartColor = video::SColor(255,255,255,255),
955                 u32 lifeTimeMin=2000, u32 lifeTimeMax=4000,
956                 s32 maxAngleDegrees=0) = 0;
957         virtual IParticleEmitter* createBoxEmitter(
958                 const core::aabbox3df& box = core::aabbox3df(-10,28,-10,10,30,10),
959                 const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f), 
960                 u32 minParticlesPerSecond = 5,
961                 u32 maxParticlesPerSecond = 10,
962                 const video::SColor& minStartColor = video::SColor(255,0,0,0),
963                 const video::SColor& maxStartColor = video::SColor(255,255,255,255),
964                 u32 lifeTimeMin=2000, u32 lifeTimeMax=4000,
965                 s32 maxAngleDegrees=0) = 0;
966         virtual IParticleFadeOutAffector* createFadeOutParticleAffector(
967                 const video::SColor& targetColor = video::SColor(0,0,0,0),
968                 u32 timeNeededToFadeOut = 1000) = 0;
969         virtual IParticleGravityAffector* createGravityAffector(
970                 const core::vector3df& gravity = core::vector3df(0.0f,-0.03f,0.0f),
971                 u32 timeForceLost = 1000) = 0;
972
973 IQ3Shader.h
974 Removed method
975         bool operator < ( const SVariable &other ) const
976
977 IReadFile.h
978 Changed param types (adapt the correct C-API for file positions)
979         virtual bool seek(long finalPos, bool relativeMovement = false) = 0;
980         virtual long getSize() const = 0;
981         virtual long getPos() const = 0;
982         IReadFile* createLimitReadFile(const c8* fileName, IReadFile* alreadyOpenedFile, long areaSize);
983         IReadFile* createMemoryReadFile(void* memory, long size, const c8* fileName, bool deleteMemoryWhenDropped);
984 Changed signature (made const)
985         virtual const c8* getFileName() const = 0;
986
987 IrrlichtDevice.h
988 Changed signature (made const)
989         virtual bool isWindowActive() const = 0;
990         virtual const c8* getVersion() const = 0;
991 Changed signature (made const-ref param)
992         virtual void postEventFromUser(const SEvent& event) = 0;
993
994 irrList.h
995 Changed some structures in order to incorporate a ConstIterator class.
996         Iterator begin()
997         ConstIterator begin() const
998         Iterator end()
999         ConstIterator end() const
1000         Iterator getLast()
1001         ConstIterator getLast() const
1002         void insert_after(const Iterator& it, const T& element)
1003         void insert_before(const Iterator& it, const T& element)
1004
1005 irrMath.h
1006 Changed signature (Use const references for better class handling)
1007         inline const T& min_(const T& a, const T& b)
1008         inline const T& min_(const T& a, const T& b, const T& c)
1009         inline const T& max_(const T& a, const T& b)
1010         inline const T& max_(const T& a, const T& b, const T& c)
1011         inline T abs_(const T& a)
1012         inline T lerp(const T& a, const T& b, const f32 t)
1013         inline const T clamp (const T& value, const T& low, const T& high) 
1014
1015 irrString.h
1016 Changed signature (made proper const method)
1017         T& operator [](const u32 index)
1018         const T& operator [](const u32 index) const
1019
1020 irrXML.h
1021 Changed signature (adapt the correct C-API for file positions, made const)
1022         virtual long getSize() const = 0;
1023 Changed signature (changed param types)
1024         virtual unsigned int getAttributeCount() const = 0;
1025
1026 ISceneManager.h
1027 Changed signature (changed param types)
1028         virtual IAnimatedMesh* addHillPlaneMesh(const c8* name,
1029                 const core::dimension2d<f32>& tileSize, const core::dimension2d<u32>& tileCount,
1030                 video::SMaterial* material = 0, f32 hillHeight = 0.0f,
1031                 const core::dimension2d<f32>& countHills = core::dimension2d<f32>(0.0f, 0.0f),
1032                 const core::dimension2d<f32>& textureRepeatCount = core::dimension2d<f32>(1.0f, 1.0f)) = 0;
1033 Changed signature (changed param types and order)
1034         virtual IAnimatedMesh* addArrowMesh(const c8* name,
1035                         video::SColor vtxColor0=0xFFFFFFFF,
1036                         video::SColor vtxColor1=0xFFFFFFFF,
1037                         u32 tesselationCylinder=4, u32 tesselationCone=8,
1038                         f32 height=1.f, f32 cylinderHeight=0.6f,
1039                         f32 width0=0.05f, f32 width1=0.3f) = 0;
1040 Changed signature (changed param types)
1041         virtual bool postEventFromUser(const SEvent& event) = 0;
1042         virtual ISceneNodeFactory* getSceneNodeFactory(u32 index) = 0;
1043         virtual ISceneNodeAnimatorFactory* getSceneNodeAnimatorFactory(u32 index) = 0;
1044 Changed signature (made const)
1045         virtual E_SCENE_NODE_RENDER_PASS getSceneNodeRenderPass() const = 0;
1046 Changed signature (changed param types, made const)
1047         virtual u32 getRegisteredSceneNodeFactoryCount() const = 0;
1048         virtual u32 getRegisteredSceneNodeAnimatorFactoryCount() const = 0;
1049         virtual const video::SColorf& getAmbientLight() const = 0;
1050
1051 ISceneNodeAnimatorCollisionResponse.h
1052 Changed signature (made const)
1053         virtual bool isFalling() const = 0;
1054
1055 ISceneNodeAnimatorFactory.h
1056 Changed signature (changed param types, made const)
1057         virtual u32 getCreatableSceneNodeAnimatorTypeCount() const = 0;
1058         virtual ESCENE_NODE_ANIMATOR_TYPE getCreateableSceneNodeAnimatorType(u32 idx) const = 0;
1059         virtual const c8* getCreateableSceneNodeAnimatorTypeName(u32 idx) const = 0;
1060 Changed signature (made const)
1061         virtual const c8* getCreateableSceneNodeAnimatorTypeName(ESCENE_NODE_ANIMATOR_TYPE type) const = 0;
1062
1063 ISceneNodeFactory.h
1064 Changed signature (changed param types, made const)
1065         virtual u32 getCreatableSceneNodeTypeCount() const = 0;
1066         virtual ESCENE_NODE_TYPE getCreateableSceneNodeType(u32 idx) const = 0;
1067         virtual const c8* getCreateableSceneNodeTypeName(u32 idx) const = 0;
1068 Changed signature (made const)
1069         virtual const c8* getCreateableSceneNodeTypeName(ESCENE_NODE_TYPE type) const = 0;
1070
1071 ISceneNode.h
1072 Changed signature (made const)
1073         virtual u32 getMaterialCount() const
1074         bool isDebugObject() const
1075         virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options=0) const
1076
1077 IShadowVolumeSceneNode.h
1078 Changed signature (made const param)
1079         virtual void setMeshToRenderFrom(const IMesh* mesh) = 0;
1080
1081 ITerrainSceneNode.h
1082 Changed signature (made const)
1083         virtual u32 getIndexCount() const = 0;
1084         virtual void getMeshBufferForLOD(SMeshBufferLightMap& mb, s32 LOD) const = 0;
1085         virtual s32 getCurrentLODOfPatches(core::array<s32>& LODs) const = 0;
1086         virtual f32 getHeight( f32 x, f32 y ) const = 0;
1087 Changed signature (made const, made const-ref param)
1088         virtual const core::vector3df& getTerrainCenter() const = 0;
1089
1090 ITexture.h
1091 Changed signature (made const)
1092         virtual const core::dimension2d<s32>& getOriginalSize() const = 0;
1093         virtual const core::dimension2d<s32>& getSize() const = 0;
1094         virtual E_DRIVER_TYPE getDriverType() const = 0;
1095         const core::stringc& getName() const { return Name; }
1096
1097 ITimer.h
1098 Changed signature (made const)
1099         virtual u32 getRealTime() const = 0;
1100         virtual u32 getTime() const = 0;
1101         virtual f32 getSpeed() const = 0;
1102         virtual bool isStopped() const = 0;
1103
1104 ITriangleSelector.h
1105 Changed signature (made const)
1106         virtual void getTriangles(core::triangle3df* triangles, s32 arraySize,
1107                 s32& outTriangleCount, const core::matrix4* transform=0) const = 0;
1108         virtual void getTriangles(core::triangle3df* triangles, s32 arraySize,
1109                 s32& outTriangleCount, const core::aabbox3d<f32>& box, 
1110                 const core::matrix4* transform=0) const = 0;
1111         virtual void getTriangles(core::triangle3df* triangles, s32 arraySize,
1112                 s32& outTriangleCount, const core::line3d<f32>& line, 
1113                 const core::matrix4* transform=0) const = 0;
1114
1115 IVideoDriver.h
1116 Changed signature (made const, changed param type)
1117         virtual u32 getTextureCount() const = 0;
1118 Changed signature (made const param) in all draw2DImage methods
1119         virtual void draw2DImage(const video::ITexture* texture,
1120 Changed signature (made const-ref param, made const)
1121         virtual const core::dimension2d<s32>& getScreenSize() const = 0;
1122         virtual const core::dimension2d<s32>& getCurrentRenderTargetSize() const = 0;
1123 Changed signature (made const)
1124         virtual bool queryFeature(E_VIDEO_DRIVER_FEATURE feature) const = 0;
1125         virtual const core::matrix4& getTransform(E_TRANSFORMATION_STATE state) const = 0;
1126         virtual ITexture* createRenderTargetTexture(const core::dimension2d<s32>& size, const c8* name = 0) = 0;
1127         virtual void makeColorKeyTexture(video::ITexture* texture, video::SColor color) const = 0;
1128         virtual void makeColorKeyTexture(video::ITexture* texture,
1129                 core::position2d<s32> colorKeyPixelPos) const = 0;
1130         virtual void makeNormalMapTexture(video::ITexture* texture, f32 amplitude=1.0f) const = 0;
1131         virtual s32 getFPS() const = 0;
1132         virtual u32 getPrimitiveCountDrawn( u32 param = 0 ) const = 0;
1133         virtual u32 getMaximalDynamicLightAmount() const = 0;
1134         virtual u32 getDynamicLightCount() const = 0;
1135         virtual const SLight& getDynamicLight(u32 idx) const = 0;
1136         virtual const wchar_t* getName() const = 0;
1137         virtual u32 getMaximalPrimitiveCount() const = 0;
1138         virtual bool getTextureCreationFlag(E_TEXTURE_CREATION_FLAG flag) const = 0;
1139         virtual u32 getMaterialRendererCount() const = 0;
1140         virtual const c8* getMaterialRendererName(u32 idx) const = 0;
1141         virtual E_DRIVER_TYPE getDriverType() const = 0;
1142
1143 IWriteFile.h
1144 Changed signature (changed param type)
1145         virtual s32 write(const void* buffer, u32 sizeToWrite) = 0;
1146         virtual bool seek(long finalPos, bool relativeMovement = false) = 0;
1147 Changed signature (changed param type, made const)
1148         virtual long getPos() const = 0;
1149 Changed signature (made const)
1150         virtual const c8* getFileName() const = 0;
1151
1152 line2d.h
1153 Changed signature (made const)
1154         vector2d<T> getUnitVector() const
1155         f64 getAngleWith(const line2d<T>& l) const
1156         T getPointOrientation(const vector2d<T>& point) const
1157         bool isPointOnLine(const vector2d<T>& point) const
1158
1159 matrix4.h
1160 Changed signature (made template param)
1161         void setTranslation( const vector3d<T>& translation );
1162         vector3d<T> getTranslation() const;
1163         void setInverseTranslation( const vector3d<T>& translation );
1164         inline void setRotationRadians( const vector3d<T>& rotation );
1165         void setRotationDegrees( const vector3d<T>& rotation );
1166         core::vector3d<T> getRotationDegrees() const;
1167         inline void setInverseRotationRadians( const vector3d<T>& rotation );
1168         void setInverseRotationDegrees( const vector3d<T>& rotation );
1169         void setScale( const vector3d<T>& scale );
1170         core::vector3d<T> getScale() const;
1171
1172 rect.h
1173 Changed signature (made non-const ref param, C++ conformance)
1174         rect<T>& operator+=(const position2d<T>& pos)
1175         rect<T>& operator-=(const position2d<T>& pos)
1176
1177 S3DVertex.h
1178 Changed inheritance (S3DVertex is now base class of other vertex types)
1179 struct S3DVertex2TCoords : public S3DVertex
1180 struct S3DVertexTangents : public S3DVertex
1181
1182 SAnimatedMesh.h
1183 Changed signature (changed param type, made const)
1184         virtual u32 getFrameCount() const
1185
1186 SColor.h
1187 Changed signature (changed param type)
1188         inline u32 A1R5G5B5toA8R8G8B8(u16 color)
1189
1190 SLight.h
1191 Removed attribute (use LightSceneNode position instead)
1192         core::vector3df Position;
1193
1194 SMaterial.h
1195 Changed attribute structure (texture layer properties are now in thenew TextureLayer array). This changes access to Textures, TextureMatrix, TextureWrap, and the filter settings, which are also per-layer now.
1196         SMaterialLayer TextureLayer[MATERIAL_MAX_TEXTURES];
1197
1198 vector3d.h
1199 Changed signature (made template param)
1200         bool equals(const vector3d<T>& other, const T tolerance = (T)ROUNDING_ERROR_32 ) const
1201
1202 Changes for Version 1.4.1
1203 -------------------------
1204 Since this version is a backward compatible bugfix release, the API changes are only a few. None of them should result
1205 in uncompilable code. Newly found warnings might point out wrongly used variables, additional casts or type changes in the
1206 app should easily fix that. The only change which might go unnoticed by the compiler, but affect the application is the
1207 changed initialization in SColorf. This was done to synchronize with other constructors from SColorf and SColor, though,
1208 so the expectations are now much better met.
1209 Also, OSX users have to adjust the defines in IrrCompileConfig, as we now also have OSX defines in Irrlicht style. It's now
1210 even possible to build with X11 support under OSX without changes in the device code.
1211
1212 SColor.h
1213 Changed signature (SColorf is now default initialized to alpha=1.0f)
1214         SColorf(f32 r=0.f, f32 g=0.f, f32 b=0.f, f32 a=1.f) : r(r), g(g), b(b), a(a) {}
1215
1216 IrrCompileConfig.h
1217 Split the OSX define into platform and device (from old MACOSX define)
1218         _IRR_OSX_PLATFORM_ for Apple systems running OSX
1219         _IRR_USE_OSX_DEVICE_ for Cocoa native windowing on OSX
1220
1221 ISceneManager.h
1222 Added new overload for getMesh with IReadFile instead of filename.
1223         virtual IAnimatedMesh* getMesh(io::IReadFile* file) = 0;
1224
1225 irrMath.h
1226 Renamed method setbit
1227         REALINLINE void setbit_cond ( u32 &state, s32 condition, u32 mask )
1228
1229 ISceneNode.h
1230 Changed signature (because the debug data enum values can be OR'ed to enable multiple debug data types)
1231         virtual void setDebugDataVisible(s32 state)
1232         s32 isDebugDataVisible() const
1233         s32 DebugDataVisible;
1234
1235 matrix4.h
1236 Changed signature (Added return values to some methods)
1237         inline CMatrix4<T>& setbyproduct(const CMatrix4<T>& other_a,const CMatrix4<T>& other_b );
1238         CMatrix4<T>& setbyproduct_nocheck(const CMatrix4<T>& other_a,const CMatrix4<T>& other_b );
1239         inline CMatrix4<T>& makeIdentity();
1240         CMatrix4<T>& setTranslation( const vector3d<T>& translation );
1241         CMatrix4<T>& setInverseTranslation( const vector3d<T>& translation );
1242         inline CMatrix4<T>& setRotationRadians( const vector3d<T>& rotation );
1243         CMatrix4<T>& setRotationDegrees( const vector3d<T>& rotation );
1244         inline CMatrix4<T>& setInverseRotationRadians( const vector3d<T>& rotation );
1245         CMatrix4<T>& setInverseRotationDegrees( const vector3d<T>& rotation );
1246         CMatrix4<T>& setScale( const vector3d<T>& scale );
1247         CMatrix4<T>& buildProjectionMatrixPerspectiveFovRH(f32 fieldOfViewRadians, f32 aspectRatio, f32 zNear, f32 zFar);
1248         CMatrix4<T>& buildProjectionMatrixPerspectiveFovLH(f32 fieldOfViewRadians, f32 aspectRatio, f32 zNear, f32 zFar);
1249         CMatrix4<T>& buildProjectionMatrixPerspectiveRH(f32 widthOfViewVolume, f32 heightOfViewVolume, f32 zNear, f32 zFar);
1250         CMatrix4<T>& buildProjectionMatrixPerspectiveLH(f32 widthOfViewVolume, f32 heightOfViewVolume, f32 zNear, f32 zFar);
1251         CMatrix4<T>& buildProjectionMatrixOrthoLH(f32 widthOfViewVolume, f32 heightOfViewVolume, f32 zNear, f32 zFar);
1252         CMatrix4<T>& buildProjectionMatrixOrthoRH(f32 widthOfViewVolume, f32 heightOfViewVolume, f32 zNear, f32 zFar);
1253         CMatrix4<T>& buildCameraLookAtMatrixLH(...)
1254         CMatrix4<T>& buildCameraLookAtMatrixRH(...)
1255         CMatrix4<T>& buildShadowMatrix(const core::vector3df& light, core::plane3df plane, f32 point=1.0f);
1256         CMatrix4<T>& buildNDCToDCMatrix( const core::rect<s32>& area, f32 zScale);
1257         CMatrix4<T>& setTextureScale( f32 sx, f32 sy );
1258         CMatrix4<T>& setTextureRotationCenter( f32 radAngle );
1259         CMatrix4<T>& setTextureScaleCenter( f32 sx, f32 sy );
1260         CMatrix4<T>& setTextureTranslate( f32 x, f32 y );
1261         CMatrix4<T>& setM(const T* data);
1262 Added overload (for one scale value for all axes)
1263         CMatrix4<T>& setScale( const T scale ) { return setScale(core::vector3d<T>(scale,scale,scale)); }
1264
1265 S3DVertex.h
1266 Added operator
1267         bool operator<(const S3DVertex& other) const
1268         bool operator<(const S3DVertex2TCoords& other) const
1269         bool operator<(const S3DVertexTangents& other) const
1270
1271 irrString.h
1272 Changed signature (int->u32, negative length didn't make sense)
1273         bool equalsn(const string<T>& other, u32 n) const
1274         bool equalsn(const T* const str, u32 n) const
1275 New overload/missing method (completing the findLast... and find...Char methods)
1276         s32 findLastChar(const T* const c, u32 count) const
1277 Changed signature (Added return value)
1278         string<T>& trim()
1279
1280 Changes for Version 1.4.2
1281 -------------------------
1282 This is once more a bugfix release of the 1.4 branch, and hence pretty API-consistent and backward compatible. The major reason to publish this release is the OpenGL bug, which made several OpenGL 2.x drivers run in SW emulation.
1283 However, we also introduced some driver consistency fixes, which might affect your application's behavior. So read through the next points thoroughly.
1284
1285 SceneParameters.h (and general video driver behavior)
1286 The way Irrlicht handles zbuffer writing with transparent materials has changed. This was an issue ever since, because the default behavior in Irrlicht is to disable writing to the z-buffer for all really transparent, i.e. blending materials. This avoids problems with intersecting faces, but can also break renderings. And this is now consistent for both OpenGL and Direct3D.
1287 If transparent materials should use the SMaterial flag for ZWriteEnable just as other material types use the newly introduced attribute scene::ALLOW_ZWRITE_ON_TRANSPARENT like this:
1288 SceneManager->getParameters()->setAttribute(scene::ALLOW_ZWRITE_ON_TRANSPARENT, true);
1289 All transparent materials will henceforth work as specified by the material flag, until the scenemanager attribute is set to false.
1290
1291 SMaterialLayer.h
1292 The texture matrix now uses irrAllocator for memory handling. This shouldn't be noticeable from the user application (besides fixed heap corruptions on Windows machines), but is still mentioned for completeness.
1293
1294 ISceneNode.h
1295 Documentation error. The docs said that children of a scene node are not visible if the node itself is set to visible. This is of course wrong, children inherit non-visibility of the parent and are hence invisible if the parent is. If the parent is visible, the visibility flag of the child determines its status.
1296
1297 SColor.h
1298 Removed methods (use the unsigned versions and cast in your app if necessary)
1299         inline s32 getRedSigned(u16 color)
1300         inline s32 getGreenSigned(u16 color)
1301         inline s32 getBlueSigned(u16 color)
1302
1303 IParticleSystemSceneNode.h
1304 Changed default values (the old direction default was no real direction)
1305         virtual IParticleAnimatedMeshSceneNodeEmitter* createAnimatedMeshSceneNodeEmitter(...)
1306         virtual IParticleCylinderEmitter* createCylinderEmitter(...)
1307         virtual IParticleMeshEmitter* createMeshEmitter(...)
1308
1309 IBoneSceneNode.h
1310 Changed signature (Made const)
1311         virtual E_BONE_SKINNING_SPACE getSkinningSpace() const=0;
1312
1313 IrrlichtDevice.h
1314 Changed signature (Return value bool instead of void). Returns whether the event has been handled somewhere.
1315         virtual bool postEventFromUser(const SEvent& event) = 0;
1316
1317 Changes for Version 1.5
1318 -----------------------
1319 Another major release, so expect API breaks at several places. The changes
1320 herein are described as a difference to Irrlicht 1.4.2.
1321
1322 The most noticeable changes are the speed factor of the FPS camera (now units/ms
1323 instead of units/s, so divide the parameter by 1000.f) and the new interfaces
1324 of the camera nodes, based on scene node animators. Custom camera nodes should
1325 be adpated to this new scheme, although they might still work. Also, particle
1326 sizes are now set and handled by the emitters, which requires a change of the
1327 particle system constructor call or adaption of the setParticleSize method to
1328 work on the emitters. A deprecation method is issued if the old scheme is used.
1329 Light setting has also changed, the SLight struct is used in even less
1330 situations than before, instead use methods in ILightSceneNode.
1331
1332 Other changes did change major parts of the underlying structures, but might go
1333 unnoticed on the user level. This includes 32bit indices and Vertex Buffer
1334 Objects. However, VBOs require the user to call setDirty on Meshes or
1335 MeshBuffers after changes to the vertex or index data. The all need only to be
1336 done once before the next render call, but again after subsequent changes later
1337 on.
1338
1339
1340 All Mesh types and MeshBuffers:
1341 New methods for VBO support. Once VBOs are enabled for a meshbuffer, changes
1342 will only be effective after a call to setDirty(). VBOs are enabled by default
1343 for some scene nodes.
1344         virtual void setDirty(E_BUFFER_TYPE buffer=EBT_VERTEX_AND_INDEX);
1345
1346 All MeshBuffers:
1347 Due to the 32bit support, it might happen that indices are stored as 32bit integers. The actual index type can be queried from a mesh buffer.
1348         virtual video::E_INDEX_TYPE getIndexType() const
1349
1350 IrrCompileConfig.h
1351 Some new defines for configuring Irrlicht
1352 _IRR_USE_WINDOWS_CE_DEVICE_ for Windows CE API based device
1353 _IRR_COMPILE_WITH_JOYSTICK_EVENTS_ to enable joystick support (enabled by default)
1354 _IRR_COMPILE_WITH_LWO_LOADER_ to enable the LWO mesh loader (enabled by default)
1355 _IRR_COMPILE_WITH_OBJ_WRITER_ to enable the OBJ mesh writer (enabled by default)
1356 _IRR_COMPILE_WITH_WAL_LOADER_ to enable the WAL image loader (enabled by default)
1357 _IRR_USE_NVIDIA_PERFHUD_ for support of the PerfHUD tool (disabled by default)
1358
1359 SceneParameters.h
1360 New parameter scene::OBJ_LOADER_IGNORE_GROUPS, which allows to ignore the group structure of obj files. It's disabled by default, meaning obj groups will be represented by separate meshbuffers.
1361
1362 SColor.h
1363 Renamed method names of the SColorHSL class
1364         void fromRGB(const SColor &color);
1365         void toRGB(SColor &color) const;
1366
1367 ITexture.h
1368 Added new parameter
1369         virtual void* lock(bool readOnly = false) = 0;
1370
1371 IMeshManipulator.h
1372 Renamed methods (the old ones still exist, but are deprecated). The new methods also work on meshbuffers, not just meshes.
1373 (renamed from scaleMesh)
1374         virtual void scale(IMesh* mesh, const core::vector3df& factor) const = 0;
1375 (renamed from transformMesh)
1376         virtual void transform(IMesh* mesh, const core::matrix4& m) const = 0;
1377 Changed signature (Added new parameters to adjust the algorithm)
1378         virtual IMesh* createMeshWithTangents(IMesh* mesh, bool recalculateNormals=false, bool smooth=false, bool angleWeighted=false) const = 0;
1379
1380 IBillboardTextSceneNode.h
1381 New interface replacing the multiple inheritance from bliiboard and text scene node previously used by the billboard text scene node.
1382
1383 IParticleSystemSceneNode.h
1384 All emitters have minStartSize and maxStartSize parameters now, since partice size is handled by the emitters now.
1385 Default value added
1386         virtual void setParticlesAreGlobal(bool global=true) = 0;
1387
1388 fast_atof.h
1389 Signature change (return value changed from u32)
1390 inline s32 strtol10(const char* in, const char** out=0)
1391 Signature change (parameter changed from float)
1392 inline const char* fast_atof_move( const char * in, f32 & out)
1393
1394 IAnimatedMeshSceneNode.h
1395 Added new parameter (dummy node used for simplifying shadow calculation)
1396         virtual IShadowVolumeSceneNode* addShadowVolumeSceneNode(const IMesh* shadowMesh=0,
1397                 s32 id=-1, bool zfailmethod=true, f32 infinity=10000.0f) = 0;
1398  
1399 ISceneManager.h
1400 Removed extra render passes for quake shaders
1401 Changed scene node from ISceneNode to IMeshSceneNode
1402         virtual IMeshSceneNode* addCubeSceneNode(f32 size=10.0f, ISceneNode* parent=0, s32 id=-1, ...)
1403         virtual IMeshSceneNode* addSphereSceneNode(f32 radius=5.0f, s32 polyCount=16, ...)
1404 Changed default value (from 256 to 512, for efficiency on common gfx hardware)
1405         virtual ISceneNode* addOctTreeSceneNode(IAnimatedMesh* mesh, ISceneNode* parent=0,
1406                 s32 id=-1, s32 minimalPolysPerNode=512, bool alsoAddIfMeshPointerZero=false) = 0;
1407 Changed default value (from 500.f, to adapt the changed speed scale) 
1408         virtual ICameraSceneNode* addCameraSceneNodeFPS(ISceneNode* parent = 0,
1409                 f32 rotateSpeed = 100.0f, f32 moveSpeed = .5f, s32 id=-1, ...)
1410 Added default values 
1411         virtual ISceneNode* addSkyDomeSceneNode(video::ITexture* texture,
1412                 u32 horiRes=16, u32 vertRes=8,
1413                 f64 texturePercentage=0.9, f64 spherePercentage=2.0,
1414                 ISceneNode* parent=0, s32 id=-1) = 0;
1415 Changed return value (from ITextSceneNode, due to changed inheritance) 
1416         virtual IBillboardTextSceneNode* addBillboardTextSceneNode( gui::IGUIFont* font, const wchar_t* text, ...)
1417 Changed default value (gravity, from -100.f)
1418         virtual ISceneNodeAnimatorCollisionResponse* createCollisionResponseAnimator(
1419                 ITriangleSelector* world, ISceneNode* sceneNode,
1420                 const core::vector3df& ellipsoidRadius = core::vector3df(30,60,30),
1421                 const core::vector3df& gravityPerSecond = core::vector3df(0,-10.0f,0),
1422                 const core::vector3df& ellipsoidTranslation = core::vector3df(0,0,0),
1423                 f32 slidingValue = 0.0005f) = 0;
1424  
1425 ISceneNodeAnimator.h
1426 Changed inheritance (for interactive animators)
1427         class ISceneNodeAnimator : public io::IAttributeExchangingObject, public IEventReceiver
1428 Changed to pure virtual (bug fix)
1429         virtual ISceneNodeAnimator* createClone(ISceneNode* node, ISceneManager* newManager=0) = 0;
1430
1431 IVideoModeList.h
1432 Changed return value (constification)
1433         virtual const core::dimension2d<s32>& getDesktopResolution() const = 0;
1434
1435 IBoneSceneNode.h
1436 Deprecation: Use getName instead.
1437         virtual const c8* getBoneName() const;
1438
1439 vector3d.h
1440 Changed return value (return *this)
1441         vector3d<T>& set(const T nx, const T ny, const T nz) {X=nx; Y=ny; Z=nz; return *this;}
1442         vector3d<T>& set(const vector3d<T>& p) {X=p.X; Y=p.Y; Z=p.Z;return *this;}
1443         vector3d<T>& setLength(T newlength)
1444         vector3d<T>& invert()
1445 Added default value
1446         void rotateXZBy(f64 degrees, const vector3d<T>& center=vector3d<T>())
1447         void rotateXYBy(f64 degrees, const vector3d<T>& center=vector3d<T>())
1448         void rotateYZBy(f64 degrees, const vector3d<T>& center=vector3d<T>())
1449 Changed parameter type (interpolation factor must not be integral)
1450         vector3d<T> getInterpolated(const vector3d<T>& other, f64 d) const
1451         vector3d<T> getInterpolated_quadratic(const vector3d<T>& v2, const vector3d<T>& v3, f64 d) const
1452 Method made const 
1453         vector3d<T> getHorizontalAngle() const
1454  
1455 SLight.h
1456 Attenuation can be overridden by ILightSceneMethod setRadius() Attenuation will
1457 change to (0,1.f/radius,0). Can be overridden after radius was set.
1458 The following members are read-only now: 
1459         f32 Radius;
1460         E_LIGHT_TYPE Type;
1461         bool CastShadows;
1462
1463 ITerrainSceneNode.h
1464 Parameter type changed (diue to possible 32bit indices)
1465         virtual void getMeshBufferForLOD(IDynamicMeshBuffer& mb, s32 LOD=0) const =0;
1466 Added dafault value (highest detail) 
1467         virtual void setLODOfPatch(s32 patchX, s32 patchZ, s32 LOD=0) =0;
1468
1469 SExposedVideoData.h
1470 Changed member attributes (from s32, to fix 64bit architecture problems)
1471         void* HWnd;
1472         void* HDc;
1473         void* HRc;
1474         void* HWnd;
1475
1476 IAnimatedMeshMD3.h
1477 Changed return value (constification)
1478         const SMD3QuaterionTag& operator[](u32 index) const
1479
1480 IQ3Shader.h
1481 Changed default q3 shader values (from LIGHTMAP_M2)
1482         const video::E_MATERIAL_TYPE defaultMaterialType = video::EMT_LIGHTMAP_M4;
1483         const video::E_MODULATE_FUNC defaultModulate = video::EMFN_MODULATE_4X;
1484
1485 ISceneNode.h
1486 Method made virtual
1487         virtual const core::matrix4& getAbsoluteTransformation() const
1488 Changed return value (constified)
1489         virtual const core::vector3df& getScale() const
1490         virtual const core::vector3df& getPosition() const
1491
1492 IEventReceiver.h
1493 Removed member from UserEvent
1494         f32 UserData3;
1495  
1496 SMaterial.h
1497 Changed member type (from u32)
1498         char ZBuffer;
1499
1500 IGUISkin.h
1501 Added parameter (for alignment)
1502         virtual void draw3DTabButton(IGUIElement* element, bool active,
1503                 const core::rect<s32>& rect, const core::rect<s32>* clip=0, gui::EGUI_ALIGNMENT alignment=EGUIA_UPPERLEFT) = 0;
1504         virtual void draw3DTabBody(IGUIElement* element, bool border, bool background,
1505                 const core::rect<s32>& rect, const core::rect<s32>* clip=0, s32 tabHeight=-1, gui::EGUI_ALIGNMENT alignment=EGUIA_UPPERLEFT ) = 0;
1506
1507 quaternion.h
1508 Renamed method (from getDotProduct)
1509         inline f32 dotProduct(const quaternion& other) const;
1510 Changed return value (return *this)
1511         quaternion& set(f32 x, f32 y, f32 z, f32 w);
1512         quaternion& set(f32 x, f32 y, f32 z);
1513         quaternion& set(const core::vector3df& vec);
1514         quaternion& makeInverse();
1515         quaternion& slerp( quaternion q1, quaternion q2, f32 interpolate );
1516         quaternion& fromAngleAxis (f32 angle, const vector3df& axis);
1517         quaternion& makeIdentity();
1518         quaternion& rotationFromTo(const vector3df& from, const vector3df& to);
1519
1520 IVideoDriver.h
1521 Added parameters (moved from endScene) and added default values
1522         virtual bool beginScene(bool backBuffer=true, bool zBuffer=true,
1523                 SColor color=SColor(255,0,0,0), void* windowId=0,
1524                 core::rect<s32>* sourceRect=0) = 0;
1525 Removed parameter (move to beginScene)
1526         virtual bool endScene() = 0;
1527 Renamed method (note, also affects ReferenceCount behavior!)
1528 Use addRenderTargetTexture instead of createRenderTargetTexture
1529         virtual ITexture* addRenderTargetTexture(const core::dimension2d<s32>& size,
1530                 const c8* name=0) =0;
1531 Changed parameters (for 32bit index support)
1532         virtual void drawVertexPrimitiveList(const void* vertices, u32 vertexCount,
1533                 const void* indexList, u32 primCount, E_VERTEX_TYPE vType,
1534                 scene::E_PRIMITIVE_TYPE pType, E_INDEX_TYPE iType) = 0;
1535 Changed parameter (colors are const pointers now) 
1536         virtual void draw2DImage(const video::ITexture* texture, const core::rect<s32>& destRect,
1537                 const core::rect<s32>& sourceRect, const core::rect<s32>* clipRect = 0,
1538                 const video::SColor * const colors=0, bool useAlphaChannelOfTexture=false) = 0;
1539
1540 IQ3LevelMesh.h
1541 Added default value
1542         virtual const quake3::SShader* getShader( const c8* filename, bool fileNameIsValid=true ) = 0;
1543
1544 ICameraSceneNode.h
1545 Added method parameter (required to set orthogonal together with projection to avoid inconsistencies)
1546         virtual void setProjectionMatrix(const core::matrix4& projection, bool isOrthogonal = false) = 0;
1547 Removed method (use new parameter in setProjectionMatrix)
1548         void setIsOrthogonal( bool orthogonal )
1549 Constified return value 
1550         virtual const core::vector3df& getTarget() const = 0;
1551         virtual const core::vector3df& getUpVector() const = 0;
1552  
1553 matrix4.h
1554 Removed method (use transformPlane)
1555         void transformPlane_new( core::plane3d<f32> &plane) const;
1556 Changed qulifications (to enable use under Win32 systems, too)
1557         IRRLICHT_API extern const matrix4 IdentityMatrix;
1558
1559 SIrrCreationParameters.h
1560 Changed member attribute types
1561         u8 Bits;
1562         const c8* const SDK_version_do_not_use;
1563
1564 IGUIElement.h
1565 Renamed method from setRelativePosition (to distinguish rather different parameter interpretation)
1566         void setRelativePositionProportional(const core::rect<f32>& r) 
1567
1568 irrString.h
1569 Constructors made explicit (use core::stringc(var) in places where var was used before)
1570         explicit string(const double number)
1571         explicit string(int number)
1572         explicit string(unsigned int number)
1573 Added parameter (allows use of method for stringw, and other things)
1574         string<T>& trim(const string<T> & whitespace = " \t\n\r")
1575
1576 vector2d.h
1577 Changed return value (return *this)
1578         vector2d<T>& set(T nx, T ny) {X=nx; Y=ny; return *this; }
1579         vector2d<T>& set(const vector2d<T>& p) { X=p.X; Y=p.Y; return *this; }
1580 Added default value
1581         vector2d<T>& rotateBy(f64 degrees, const vector2d<T>& center=vector2d<T>())
1582 Changed parameter type (interpolation factor must not be int)
1583         vector2d<T> getInterpolated(const vector2d<T>& other, f64 d) const
1584         vector2d<T> getInterpolated_quadratic(const vector2d<T>& v2, const vector2d<T>& v3, f64 d) const
1585         vector2d<T>& interpolate(const vector2d<T>& a, const vector2d<T>& b, f64 d)
1586
1587 Changes for Version 1.5.1
1588 -------------------------
1589 This release is a pure bugfixes release, with almost no visible API changes. All changes should be backward compatible (as it's just a minor release), but you have to recompile the app due to changes in the virtual method tables.
1590
1591 dimension2d.h
1592 Fixed a bug in the operator+=, added operator-= and changed comparison to equal() method.
1593         dimension2d<T>& operator-=(const dimension2d<T>& other)
1594
1595 IrrCompileConfig.h
1596 Added defines to check for the Irrlicht version in the code.
1597         IRRLICHT_VERSION_MAJOR
1598         IRRLICHT_VERSION_MINOR
1599         IRRLICHT_VERSION_REVISION
1600         IRRLICHT_VERSION_SVN // only defined if you're using a version from SVN, i.e. not officially released one
1601
1602 IrrlichtDevice.h
1603 Added static method isDriverSupported which checks the driver support of the library
1604         static bool isDriverSupported(video::E_DRIVER_TYPE driver)
1605
1606 irrMath.h
1607 Added iszero specialization for f64
1608         bool iszero(const f64 a, const f64 tolerance = ROUNDING_ERROR_64)
1609
1610 irrXML.h
1611 Added deleteCallback flag for cleanup of the ReadCallback.
1612         IrrXMLReader* createIrrXMLReader(IFileReadCallBack* callback, bool deleteCallback = false);
1613         IrrXMLReaderUTF16* createIrrXMLReaderUTF16(IFileReadCallBack* callback, bool deleteCallback = false);
1614         IrrXMLReaderUTF32* createIrrXMLReaderUTF32(IFileReadCallBack* callback, bool deleteCallback = false);
1615
1616 ISceneNode.h
1617 Added getSceneManager to get the currently used scene manager of the node.
1618         ISceneManager* getSceneManager(void) const
1619
1620 IVideoDriver.h
1621 Added default values for vType, pType, and iType
1622         virtual void drawVertexPrimitiveList(const void* vertices, u32 vertexCount, const void* indexList, u32 primCount,
1623                                                 E_VERTEX_TYPE vType=EVT_STANDARD, scene::E_PRIMITIVE_TYPE pType=scene::EPT_TRIANGLES, E_INDEX_TYPE iType=EIT_16BIT)
1624 Added method to draw 2d rectangle outline
1625         void draw2DRectangleOutline(const core::recti& pos, SColor color=SColor(255,255,255,255))
1626
1627 matrix4.h
1628 Added method to get transposedInverse
1629         CMatrix4<T> transposedInverse(*this, EM4CONST_INVERSE_TRANSPOSED)
1630
1631 rect.h
1632 Added typedefs
1633         typedef rect<f32> rectf;
1634         typedef rect<s32> recti;
1635
1636 SSharedMeshBuffer.h
1637 Split hardware mapping hint into vertex and index part
1638         E_HARDWARE_MAPPING getHardwareMappingHint_Vertex() const
1639         E_HARDWARE_MAPPING getHardwareMappingHint_Index() const
1640         void setHardwareMappingHint( E_HARDWARE_MAPPING NewMappingHint, E_BUFFER_TYPE buffer=EBT_VERTEX_AND_INDEX )
1641
1642 vector2d.h
1643 Fix angle calculation for integer vectors
1644
1645 Changes for Version 1.5.2
1646 -------------------------
1647 Even less visible changes have been made in this version. Only the automatic Solaris OS recognition has changed, so make sure you have all things defined properly if you compile for Solaris. And the float parser bugfix is a visible change, though non-interfering for existing code.
1648
1649 Changes for Version 1.6.0
1650 -------------------------
1651 This releases has many changes in method signatures. The most obvious ones are signedness changes from s32 to u32. Since many templates won't accept both types, you need to change the types manually in your code. The other major change is from many different types of strings to the new class io::path. These changes should be transparent to the app, unless you need proper overrides in derived classes.
1652 Finally, some deprecated methods have been removed, and some were simply renamed. Just check the API if some methods is not found anymore.
1653
1654 IMeshSceneNode.h
1655 Added default parameters for identity transformation
1656         IMeshSceneNode(ISceneNode* parent, ISceneManager* mgr, s32 id,
1657                 const core::vector3df& position = core::vector3df(0,0,0),
1658                 const core::vector3df& rotation = core::vector3df(0,0,0),
1659                 const core::vector3df& scale = core::vector3df(1,1,1))
1660
1661 path.h
1662 This is a new type, which handles stuff with UTF file systems.
1663 typedef core::string<fschar_t> io::path;
1664
1665 ESceneNodeTypes.h
1666 New scene node identifiers
1667         ESNT_SKY_DOME       = MAKE_IRR_ID('s','k','y','d'),
1668         ESNT_Q3SHADER_SCENE_NODE  = MAKE_IRR_ID('q','3','s','h'),
1669         ESNT_VOLUME_LIGHT  = MAKE_IRR_ID('v','o','l','l'),
1670
1671 IGUIListBox.h
1672 New methods
1673         virtual void setSelected(const wchar_t *item) = 0;
1674         virtual void setItemHeight( s32 height ) = 0;
1675         virtual void setDrawBackground(bool draw) = 0;
1676
1677 ITexture.h
1678 New texture generation flag for burnings video driver
1679         //! Allow the Driver to use Non-Power-2-Textures
1680         ETCF_ALLOW_NON_POWER_2 = 0x00000040,
1681 Parameter change (now using path type instead of C-strings)
1682         ITexture(const io::path& name)
1683 Signedness change
1684         virtual const core::dimension2d<u32>& getOriginalSize() const = 0;
1685         virtual const core::dimension2d<u32>& getSize() const = 0;
1686 New method
1687         virtual bool hasAlpha() const
1688 Parameter change (now using path type instead of stringc)
1689         const io::path& getName() const
1690
1691 ILightManager.h
1692 This is a new interface for the light manager
1693         class ILightManager : public IReferenceCounted
1694
1695 IGUIEditBox.h
1696 Signedness change
1697         virtual core::dimension2du getTextDimension() = 0;
1698
1699 ITriangleSelector.h
1700 New method
1701         virtual const ISceneNode* getSceneNodeForTriangle(u32 triangleIndex) const = 0;
1702
1703 IMeshManipulator.h
1704 New methods
1705         virtual void makePlanarTextureMapping(scene::IMeshBuffer* meshbuffer, f32 resolution=0.001f) const =0;
1706         virtual void makePlanarTextureMapping(scene::IMeshBuffer* buffer, f32 resolutionS, f32 resolutionT, u8 axis, const core::vector3df& offset) const =0;
1707         virtual IMesh* createMeshWith1TCoords(IMesh* mesh) const = 0;
1708
1709 SceneParameters.h
1710 Removed parameter
1711         const c8* const DMF_USE_MATERIALS_DIRS = "DMF_MaterialsDir";
1712 New parameters
1713         const c8* const DMF_IGNORE_MATERIALS_DIRS = "DMF_IgnoreMaterialsDir";
1714         const c8* const OBJ_LOADER_IGNORE_MATERIAL_FILES = "OBJ_IgnoreMaterialFiles";
1715         const c8* const B3D_LOADER_IGNORE_MIPMAP_FLAG = "B3D_IgnoreMipmapFlag";
1716         const c8* const DEBUG_NORMAL_LENGTH = "DEBUG_Normal_Length";
1717         const c8* const DEBUG_NORMAL_COLOR = "DEBUG_Normal_Color";
1718
1719 SViewFrustum.h
1720 Removed method (use getTransform)
1721         void setTransformState( video::E_TRANSFORMATION_STATE state);
1722 New methods
1723         core::matrix4& getTransform( video::E_TRANSFORMATION_STATE state);
1724         const core::matrix4& getTransform( video::E_TRANSFORMATION_STATE state) const;
1725         bool clipLine(core::line3d<f32>& line) const;
1726
1727 IFileList.h
1728 Changed parameters (to io::path)
1729         virtual const io::path& getFileName(u32 index) const = 0;
1730         virtual const io::path& getFullFileName(u32 index) const = 0;
1731 New methods
1732         virtual u32 getFileSize(u32 index) const = 0;
1733         virtual s32 findFile(const io::path& filename, bool isFolder=false) const = 0;
1734         virtual const io::path& getPath() const = 0;
1735
1736 coreutil.h
1737 New methods
1738         s32 isFileExtension(const io::path& filename,
1739                 const io::path& ext0, const io::path& ext1, const io::path& ext2)
1740         bool hasFileExtension(const io::path& filename,
1741                 const io::path& ext0, const io::path& ext1 = "", const io::path& ext2 = "")
1742         stringw& cutFilenameExtension ( stringw &dest, const stringw &source )
1743         core::stringw& deletePathFromFilename(core::stringw& filename)
1744         core::stringc& deletePathFromFilename(core::stringc& filename)
1745         io::path& deletePathFromPath(io::path& filename, s32 pathCount)
1746         s32 isInSameDirectory ( const io::path& path, const io::path& file )
1747
1748 IGUIComboBox.h
1749 New methods
1750         virtual u32 getItemData(u32 idx) const = 0;
1751         virtual s32 getIndexForItemData(u32 data ) const = 0;
1752 New parameter
1753         virtual u32 addItem(const wchar_t* text, u32 data = 0) = 0;
1754
1755 irrArray.h
1756 New allocation scheme member
1757         array()
1758 Use overload instead of different name
1759         s32 binary_search(const T& element) const
1760 New method
1761         void setAllocStrategy ( eAllocStrategy newStrategy = ALLOC_STRATEGY_DOUBLE )
1762         s32 binary_search_multi(const T& element, s32 &last)
1763
1764 IrrCompileConfig.h
1765 New compiler flags
1766         #define _IRR_MATERIAL_MAX_TEXTURES_ 4
1767         //! Define _IRR_D3D_USE_LEGACY_HLSL_COMPILER to enable the old HLSL compiler in recent DX SDKs
1768         #define BURNINGVIDEO_RENDERER_CE
1769         #define IGNORE_DEPRECATED_WARNING
1770         #define _IRR_COMPILE_WITH_PLY_LOADER_
1771         #define _IRR_COMPILE_WITH_PLY_WRITER_
1772         #define _IRR_COMPILE_WITH_RGB_LOADER_
1773         #define __IRR_COMPILE_WITH_ZIP_ARCHIVE_LOADER_
1774         #define __IRR_COMPILE_WITH_MOUNT_ARCHIVE_LOADER_
1775         #define __IRR_COMPILE_WITH_PAK_ARCHIVE_LOADER_
1776         #define __IRR_COMPILE_WITH_TAR_ARCHIVE_LOADER_
1777         //! _IRR_WINDOWS_CE_PLATFORM_ for Windows CE
1778         //! _IRR_COMPILE_WITH_WINDOWS_DEVICE_ for Windows API based device
1779         //! _IRR_COMPILE_WITH_WINDOWS_CE_DEVICE_ for Windows CE API based device
1780         //! _IRR_COMPILE_WITH_OSX_DEVICE_ for Cocoa native windowing on OSX
1781         //! _IRR_COMPILE_WITH_X11_DEVICE_ for Linux X11 based device
1782         //! _IRR_COMPILE_WITH_SDL_DEVICE_ for platform independent SDL framework
1783         //! _IRR_COMPILE_WITH_CONSOLE_DEVICE_ for no windowing system, used as a fallback
1784 Removed compiler flags
1785         //! _IRR_USE_SDL_DEVICE_ for platform independent SDL framework
1786         //! _IRR_USE_WINDOWS_DEVICE_ for Windows API based device
1787         //! _IRR_USE_WINDOWS_CE_DEVICE_ for Windows CE API based device
1788         //! _IRR_USE_LINUX_DEVICE_ for X11 based device
1789         //! _IRR_USE_OSX_DEVICE_ for Cocoa native windowing on OSX
1790 Old compilers rejected
1791         #  error "Only Microsoft Visual Studio 7.0 and later are supported."
1792 Force symbol export in shared libraries built with gcc.
1793         #define IRRLICHT_API __attribute__ ((visibility("default")))
1794
1795 IGUIFileOpenDialog.h
1796 New method
1797         virtual const io::path& getDirectoryName() = 0;
1798
1799 EDeviceTypes.h
1800 New enum for multi-device support
1801         enum E_DEVICE_TYPE
1802
1803 IMeshLoader.h
1804 Changed parameter to use io::path instead of C strings
1805         virtual bool isALoadableFileExtension(const io::path& filename) const = 0;
1806
1807 IAnimatedMeshSceneNode.h
1808 Changed return value to pointer type
1809         virtual const SMD3QuaternionTag* getMD3TagTransformation( const core::stringc & tagname) = 0;
1810
1811 ISceneManager.h
1812 New enum values and numbering
1813         enum E_SCENE_NODE_RENDER_PASS
1814                 ESNRP_NONE =0,
1815                 ESNRP_TRANSPARENT =16,
1816                 ESNRP_TRANSPARENT_EFFECT =32,
1817 Changed parameter to use io::path instead of C strings
1818         virtual IAnimatedMesh* getMesh(const io::path& filename) = 0;
1819 New methods
1820         virtual io::IFileSystem* getFileSystem() = 0;
1821         virtual ITriangleSelector* createTriangleSelector(IAnimatedMeshSceneNode* node) = 0;
1822         virtual const c8* getAnimatorTypeName(ESCENE_NODE_ANIMATOR_TYPE type) = 0;
1823         virtual ISkinnedMesh* createSkinnedMesh() = 0;
1824         virtual void setLightManager(ILightManager* lightManager) = 0;
1825         virtual const IGeometryCreator* getGeometryCreator(void) const = 0;
1826         virtual bool isCulled(const ISceneNode* node) const =0;
1827 Changed return type to IMeshSceneNode
1828         virtual IMeshSceneNode* addOctTreeSceneNode(IAnimatedMesh* mesh, ISceneNode* parent=0,
1829                         s32 id=-1, s32 minimalPolysPerNode=512, bool alsoAddIfMeshPointerZero=false) = 0;
1830         virtual IMeshSceneNode* addOctTreeSceneNode(IMesh* mesh, ISceneNode* parent=0,
1831                         s32 id=-1, s32 minimalPolysPerNode=256, bool alsoAddIfMeshPointerZero=false) = 0;
1832         virtual IMeshSceneNode* addQuake3SceneNode(IMeshBuffer* meshBuffer, const quake3::IShader * shader,
1833                         ISceneNode* parent=0, s32 id=-1) = 0;
1834 New parameter invertMouse
1835         virtual ICameraSceneNode* addCameraSceneNodeFPS(ISceneNode* parent = 0,
1836                         f32 rotateSpeed = 100.0f, f32 moveSpeed = 0.5f, s32 id=-1,
1837                         SKeyMap* keyMapArray=0, s32 keyMapSize=0, bool noVerticalMovement=false,
1838                         f32 jumpSpeed = 0.f, bool invertMouse=false) = 0;
1839 New parameter radius
1840         virtual ISceneNode* addSkyDomeSceneNode(video::ITexture* texture,
1841                         u32 horiRes=16, u32 vertRes=8,
1842                         f32 texturePercentage=0.9, f32 spherePercentage=2.0,f32 radius = 1000.f,
1843                         ISceneNode* parent=0, s32 id=-1) = 0;
1844 Changed to use io::path instead of C strings
1845         virtual ITerrainSceneNode* addTerrainSceneNode(
1846                         const io::path& heightMapFileName,
1847                         ISceneNode* parent=0, s32 id=-1,
1848         virtual IAnimatedMesh* addHillPlaneMesh(const io::path& name,
1849                         const core::dimension2d<f32>& tileSize, const core::dimension2d<u32>& tileCount,
1850                         video::SMaterial* material = 0, f32 hillHeight = 0.0f,
1851                         const core::dimension2d<f32>& countHills = core::dimension2d<f32>(0.0f, 0.0f),
1852                         const core::dimension2d<f32>& textureRepeatCount = core::dimension2d<f32>(1.0f, 1.0f)) = 0;
1853         virtual IAnimatedMesh* addArrowMesh(const io::path& name,
1854                                 video::SColor vtxColor0=0xFFFFFFFF,
1855                                 video::SColor vtxColor1=0xFFFFFFFF,
1856                                 u32 tesselationCylinder=4, u32 tesselationCone=8,
1857         virtual IAnimatedMesh* addSphereMesh(const io::path& name,
1858                                 f32 radius=5.f, u32 polyCountX = 16,
1859                                 u32 polyCountY = 16) = 0;
1860         virtual bool saveScene(const io::path& filename, ISceneUserDataSerializer* userDataSerializer=0) = 0;
1861         virtual bool loadScene(const io::path& filename, ISceneUserDataSerializer* userDataSerializer=0) = 0;
1862 Changed to use io::path instead of C strings and signedness change
1863         virtual IAnimatedMesh* addTerrainMesh(const io::path& meshname,
1864                         video::IImage* texture, video::IImage* heightmap,
1865                         const core::dimension2d<f32>& stretchSize = core::dimension2d<f32>(10.0f,10.0f),
1866                         f32 maxHeight=200.0f,
1867                         const core::dimension2d<u32>& defaultVertexBlockSize = core::dimension2d<u32>(64,64)) = 0;
1868 New method
1869         virtual IAnimatedMesh* addVolumeLightMesh(const io::path& name,
1870                         const u32 SubdivideU = 32, const u32 SubdivideV = 32,
1871                         const video::SColor FootColor = video::SColor(51, 0, 230, 180),
1872                         const video::SColor TailColor = video::SColor(0, 0, 0, 0)) = 0;
1873 Constification of method
1874         virtual ICameraSceneNode* getActiveCamera() const =0;
1875 New parameters
1876         virtual ISceneNodeAnimator* createFlyCircleAnimator(
1877                                 const core::vector3df& center=core::vector3df(0.f,0.f,0.f),
1878                                 f32 radius=100.f, f32 speed=0.001f,
1879                                 const core::vector3df& direction=core::vector3df(0.f, 1.f, 0.f),
1880                                 f32 startPosition = 0.f,
1881                                 f32 radiusEllipsoid = 0.f) = 0;
1882         virtual ISceneNodeAnimator* createFlyStraightAnimator(const core::vector3df& startPoint,
1883                         const core::vector3df& endPoint, u32 timeForWay, bool loop=false, bool pingpong = false) = 0;
1884
1885 ISceneNodeAnimatorCollisionResponse.h
1886 New interface
1887         class ICollisionCallback : public virtual IReferenceCounted
1888 New methods for ISceneNodeAnimatorCollisionResponse
1889         virtual void setAnimateTarget ( bool enable ) = 0;
1890         virtual bool getAnimateTarget () const = 0;
1891         virtual void setTargetNode(ISceneNode * node) = 0;
1892         virtual ISceneNode* getTargetNode(void) const = 0;
1893         virtual bool collisionOccurred() const = 0;
1894         virtual const core::vector3df & getCollisionPoint() const = 0;
1895         virtual const core::triangle3df & getCollisionTriangle() const = 0;
1896         virtual const core::vector3df & getCollisionResultPosition(void) const = 0;
1897         virtual const ISceneNode* getCollisionNode(void) const = 0;
1898         virtual void setCollisionCallback(ICollisionCallback* callback) = 0;
1899
1900 ILightSceneNode.h
1901 New methods
1902         virtual void setVisible(bool isVisible) = 0;
1903
1904 EMeshWriterEnums.h
1905 New enums
1906         EMWT_PLY          = MAKE_IRR_ID('p','l','y',0)
1907         EMWF_WRITE_BINARY = 0x4
1908
1909 ISceneNodeAnimator.h
1910 New method
1911         virtual bool hasFinished(void) const
1912
1913 SMaterialLayer.h
1914 Changed types
1915         u8 TextureWrap;
1916         bool BilinearFilter:1;
1917         bool TrilinearFilter:1;
1918         u8 AnisotropicFilter;
1919 New member
1920         s8 LODBias;
1921
1922 IVideoModeList.h
1923 Signedness change
1924         virtual core::dimension2d<u32> getVideoModeResolution(s32 modeNumber) const = 0;
1925         virtual core::dimension2d<u32> getVideoModeResolution(const core::dimension2d<u32>& minSize, const core::dimension2d<u32>& maxSize) const = 0;
1926         virtual const core::dimension2d<u32>& getDesktopResolution() const = 0;
1927
1928 EMaterialFlags.h
1929 Enum values changed (all renumbered)
1930
1931 ISkinnedMesh.h
1932 Renamed methods (was create... before, but these methods grab the things they create)
1933         virtual SSkinMeshBuffer* addMeshBuffer() = 0;
1934         virtual SJoint* addJoint(SJoint *parent=0) = 0;
1935         virtual SWeight* addWeight(SJoint *joint) = 0;
1936         virtual SPositionKey* addPositionKey(SJoint *joint) = 0;
1937         virtual SScaleKey* addScaleKey(SJoint *joint) = 0;
1938         virtual SRotationKey* addRotationKey(SJoint *joint) = 0;
1939
1940 SLight.h
1941 Type change
1942         bool CastShadows:1;
1943
1944 IGUITreeView.h
1945 New element
1946 // written by Reinhard Ostermeier, reinhard@nospam.r-ostermeier.de
1947         class IGUITreeView : public IGUIElement
1948
1949 IAnimatedMeshMD3.h
1950 Renamed class (from SMD3QuaterionTag)
1951         struct SMD3QuaternionTag
1952
1953 IGUIEnvironment.h
1954 New methods
1955         virtual IGUIImageList* createImageList( video::ITexture* texture,
1956                         core::dimension2d<s32>  imageSize, bool useAlphaChannel ) = 0;
1957         virtual IGUITreeView* addTreeView(const core::rect<s32>& rectangle,
1958                 IGUIElement* parent=0, s32 id=-1, bool drawBackground=false,
1959                 bool scrollBarVertical = true, bool scrollBarHorizontal = false) = 0;
1960 Changed parameters to use io::path (instead of C strings)
1961         virtual IGUIFont* getFont(const io::path& filename) = 0;
1962         virtual IGUISpriteBank* getSpriteBank(const io::path& filename) = 0;
1963         virtual IGUISpriteBank* addEmptySpriteBank(const io::path& name) = 0;
1964         virtual bool saveGUI(const io::path& filename, IGUIElement* start=0) = 0;
1965         virtual bool loadGUI(const io::path& filename, IGUIElement* parent=0) = 0;
1966 New parameter "border"
1967         virtual IGUISpinBox* addSpinBox(const wchar_t* text, const core::rect<s32>& rectangle,
1968                 bool border=true,IGUIElement* parent=0, s32 id=-1) = 0;
1969
1970 IQ3Shader.h
1971 Made non-const
1972         static core::stringc irrEmptyStringc("");
1973 New enum values
1974         enum eQ3MeshIndex
1975                 E_Q3_MESH_FOG,
1976                 E_Q3_MESH_UNRESOLVED,
1977
1978 IGeometryCreator.h
1979 New interface
1980         class IGeometryCreator : public IReferenceCounted
1981
1982 IFileArchive.h
1983 New interfaces
1984         class IFileArchive : public virtual IReferenceCounted
1985         class IArchiveLoader : public virtual IReferenceCounted
1986
1987 IFileSystem.h
1988 Changed parameters to use io::path (instead of C strings/stringc)
1989         virtual IReadFile* createAndOpenFile(const path& filename) =0;
1990         virtual IReadFile* createMemoryReadFile(void* memory, s32 len, const path& fileName, bool deleteMemoryWhenDropped=false) =0;
1991         virtual IWriteFile* createAndWriteFile(const path& filename, bool append=false) =0;
1992         virtual const path& getWorkingDirectory() =0;
1993         virtual bool changeWorkingDirectoryTo(const path& newDirectory) =0;
1994         virtual path getAbsolutePath(const path& filename) const =0;
1995         virtual path getFileDir(const path& filename) const =0;
1996         virtual path getFileBasename(const path& filename, bool keepExtension=true) const =0;
1997         virtual bool existFile(const path& filename) const =0;
1998         virtual IXMLReader* createXMLReader(const path& filename) =0;
1999         virtual IXMLReaderUTF8* createXMLReaderUTF8(const path& filename) =0;
2000         virtual IXMLWriter* createXMLWriter(const path& filename) =0;
2001 New methods
2002         virtual IReadFile* createLimitReadFile(const path& fileName,
2003                         IReadFile* alreadyOpenedFile, long pos, long areaSize) =0;
2004         virtual IWriteFile* createMemoryWriteFile(void* memory, s32 len, const path& fileName, bool deleteMemoryWhenDropped=false) =0;
2005         virtual bool addFileArchive(const path& filename, bool ignoreCase=true, bool ignorePaths=true,
2006                 E_FILE_ARCHIVE_TYPE archiveType=EFAT_UNKNOWN) =0;
2007         virtual void addArchiveLoader(IArchiveLoader* loader) =0;
2008         virtual u32 getFileArchiveCount() const =0;
2009         virtual bool removeFileArchive(u32 index) =0;
2010         virtual bool removeFileArchive(const path& filename) =0;
2011         virtual bool moveFileArchive(u32 sourceIndex, s32 relative) =0;
2012         virtual IFileArchive* getFileArchive(u32 index) =0;
2013         virtual path& flattenFilename(path& directory, const path& root="/") const =0;
2014         virtual EFileSystemType setFileListSystem(EFileSystemType listType) =0;
2015 Deprecate methods
2016         virtual bool addZipFileArchive(const c8* filename, bool ignoreCase=true, bool ignorePaths=true)
2017         virtual bool addFolderFileArchive(const c8* filename, bool ignoreCase=true, bool ignorePaths=true)
2018         virtual bool addPakFileArchive(const c8* filename, bool ignoreCase=true, bool ignorePaths=true)
2019 Constification of method
2020         virtual IFileList* createFileList() =0;
2021
2022 IrrlichtDevice.h
2023 Renamed method (from setResizeAble)
2024         virtual void setResizable(bool resize=false) = 0;
2025 New methods
2026         virtual void minimizeWindow() =0;
2027         virtual void maximizeWindow() =0;
2028         virtual void restoreWindow() =0;
2029         virtual bool setGammaRamp(f32 red, f32 green, f32 blue,
2030                         f32 relativebrightness, f32 relativecontrast) =0;
2031         virtual bool getGammaRamp(f32 &red, f32 &green, f32 &blue,
2032                         f32 &brightness, f32 &contrast) =0;
2033         virtual E_DEVICE_TYPE getType() const = 0;
2034
2035 irrMath.h
2036 Renamed from ROUNDING_ERROR_32
2037         const f32 ROUNDING_ERROR_f32 = 0.000001f;
2038 Renamed from ROUNDING_ERROR_64
2039         const f64 ROUNDING_ERROR_f64 = 0.00000001;
2040 New constant
2041         const s32 ROUNDING_ERROR_S32 = 1;
2042 New methods
2043         bool isnotzero(const f32 a, const f32 tolerance = ROUNDING_ERROR_f32)
2044         u16 if_c_a_else_b ( const s16 condition, const u16 a, const u16 b )
2045         f32 squareroot(const f32 f)
2046         f64 squareroot(const f64 f)
2047         s32 squareroot(const s32 f)
2048         f64 reciprocal_squareroot(const f64 x)
2049         s32 reciprocal_squareroot(const s32 x)
2050         f64 reciprocal ( const f64 f )
2051
2052 IGPUProgrammingServices.h
2053 Changed parameters to use io::path
2054         virtual s32 addHighLevelShaderMaterialFromFiles(
2055                 const io::path& vertexShaderProgramFileName,
2056                 const c8* vertexShaderEntryPointName = "main",
2057                 E_VERTEX_SHADER_TYPE vsCompileTarget = EVST_VS_1_1,
2058                 const io::path& pixelShaderProgramFileName = "",
2059                 const c8* pixelShaderEntryPointName = "main",
2060                 E_PIXEL_SHADER_TYPE psCompileTarget = EPST_PS_1_1,
2061                 IShaderConstantSetCallBack* callback = 0,
2062         virtual s32 addShaderMaterialFromFiles(const io::path& vertexShaderProgramFileName,
2063                 const io::path& pixelShaderProgramFileName,
2064                 IShaderConstantSetCallBack* callback = 0,
2065                 E_MATERIAL_TYPE baseMaterial = video::EMT_SOLID,
2066                 s32 userData = 0) = 0;
2067
2068 ISceneNode.h
2069 New method
2070         virtual bool isTrulyVisible() const
2071
2072 IEventReceiver.h
2073 New enum values
2074         EMIE_MOUSE_DOUBLE_CLICK,
2075         EMIE_MOUSE_TRIPLE_CLICK,
2076         EGET_DIRECTORY_SELECTED,
2077         EGET_EDITBOX_CHANGED,
2078         EGET_EDITBOX_MARKING_CHANGED,
2079         EGET_TREEVIEW_NODE_DESELECT,
2080         EGET_TREEVIEW_NODE_SELECT,
2081         EGET_TREEVIEW_NODE_EXPAND,
2082         EGET_TREEVIEW_NODE_COLLAPS,
2083         EGET_COUNT
2084 New enum
2085         enum E_MOUSE_BUTTON_STATE_MASK
2086 New members
2087         bool Shift:1;
2088         bool Control:1;
2089         u32 ButtonStates;
2090 New methods
2091         bool isLeftPressed() const { return 0 != ( ButtonStates & EMBSM_LEFT ); }
2092         bool isRightPressed() const { return 0 != ( ButtonStates & EMBSM_RIGHT ); }
2093         bool isMiddlePressed() const { return 0 != ( ButtonStates & EMBSM_MIDDLE ); }
2094 Types changed
2095         bool PressedDown:1;
2096         bool Shift:1;
2097         bool Control:1;
2098
2099 IGUISpriteBank.h
2100 New method
2101         virtual void draw2DSpriteBatch(const core::array<u32>& indices, const core::array<core::position2di>& pos,
2102                 const core::rect<s32>* clip=0,
2103                 const video::SColor& color= video::SColor(255,255,255,255),
2104                 u32 starttime=0, u32 currenttime=0,
2105                 bool loop=true, bool center=false) = 0;
2106
2107 SMaterial.h
2108 New enums
2109         enum E_COMPARISON_FUNC
2110         enum E_COLOR_PLANE
2111         enum E_ALPHA_SOURCE
2112         enum E_ANTI_ALIASING_MODE
2113         enum E_COLOR_MATERIAL
2114 New parameters
2115         inline f32 pack_texureBlendFunc ( const E_BLEND_FACTOR srcFact, const E_BLEND_FACTOR dstFact, const E_MODULATE_FUNC modulate=EMFN_MODULATE_1X, const u32 alphaSource=EAS_TEXTURE )
2116         inline void unpack_texureBlendFunc ( E_BLEND_FACTOR &srcFact, E_BLEND_FACTOR &dstFact,
2117                 E_MODULATE_FUNC &modulo, u32& alphaSource, const f32 param )
2118 New methods
2119         inline bool textureBlendFunc_hasAlpha ( const E_BLEND_FACTOR factor )
2120 Default value set elsewhere now (see IrrCompileConfig.h)
2121         const u32 MATERIAL_MAX_TEXTURES = _IRR_MATERIAL_MAX_TEXTURES_;
2122 Types changed
2123                 u8 ZBuffer;
2124                 bool Wireframe:1;
2125                 bool PointCloud:1;
2126                 bool GouraudShading:1;
2127                 bool Lighting:1;
2128                 bool ZWriteEnable:1;
2129                 bool BackfaceCulling:1;
2130                 bool FrontfaceCulling:1;
2131                 bool FogEnable:1;
2132                 bool NormalizeNormals:1;
2133 New members
2134                 u8 AntiAliasing;
2135                 u8 ColorMask:4;
2136                 u8 ColorMaterial:3;
2137 New constant
2138         IRRLICHT_API extern SMaterial IdentityMaterial;
2139
2140 IGUISkin.h
2141 New enum values
2142         EGDS_TITLEBARTEXT_DISTANCE_X,
2143         EGDS_TITLEBARTEXT_DISTANCE_Y,
2144
2145 quaternion.h
2146 New parameters
2147         void getMatrix( matrix4 &dest, const vector3df &translation ) const;
2148 New method
2149         void getMatrixCenter( matrix4 &dest, const vector3df &center, const vector3df &translation ) const;
2150
2151 ISceneNodeAnimatorCameraFPS.h
2152 New method
2153         virtual void setInvertMouse(bool invert) = 0;
2154
2155 IImage.h
2156 New enum values
2157         /** Floating Point formats. The following formats may only be used for render target textures. */
2158         ECF_R16F,
2159         ECF_G16R16F,
2160         ECF_A16B16G16R16F,
2161         ECF_R32F,
2162         ECF_G32R32F,
2163         ECF_A32B32G32R32F,
2164         ECF_UNKNOWN
2165 Signedness change
2166         virtual const core::dimension2d<u32>& getDimension() const = 0;
2167         virtual void copyToScaling(void* target, u32 width, u32 height, ECOLOR_FORMAT format=ECF_A8R8G8B8, u32 pitch=0) =0;
2168 New parameter
2169         virtual void setPixel(u32 x, u32 y, const SColor &color, bool blend = false ) = 0;
2170 New method
2171         virtual void copyToScalingBoxFilter(IImage* target, s32 bias = 0, bool blend = false) = 0;
2172         static u32 getBitsPerPixelFromFormat(const ECOLOR_FORMAT format)
2173         static bool isRenderTargetOnlyFormat(const ECOLOR_FORMAT format)
2174
2175 IVideoDriver.h
2176 New enum values (only existing if _IRR_MATERIAL_MAX_TEXTURES_ large enough)
2177         ETS_TEXTURE_4
2178         ETS_TEXTURE_5
2179         ETS_TEXTURE_6
2180         ETS_TEXTURE_7
2181 New enums
2182         enum E_RENDER_TARGET
2183         enum E_FOG_TYPE
2184 New type
2185         struct SOverrideMaterial
2186 New methods
2187         virtual u32 getImageLoaderCount() const = 0;
2188         virtual IImageLoader* getImageLoader(u32 n) = 0;
2189         virtual u32 getImageWriterCount() const = 0;
2190         virtual IImageWriter* getImageWriter(u32 n) = 0;
2191         virtual bool setRenderTarget(E_RENDER_TARGET target, bool clearTarget=true,
2192                 bool clearZBuffer=true, SColor color=video::SColor(0,0,0,0)) =0;
2193         virtual void draw2DVertexPrimitiveList(const void* vertices, u32 vertexCount,
2194                 const void* indexList, u32 primCount,
2195                 E_VERTEX_TYPE vType=EVT_STANDARD,
2196                 scene::E_PRIMITIVE_TYPE pType=scene::EPT_TRIANGLES,
2197                 E_INDEX_TYPE iType=EIT_16BIT) =0;
2198         virtual void draw2DImageBatch(const video::ITexture* texture,
2199                 const core::array<core::position2d<s32> >& positions,
2200                 const core::array<core::rect<s32> >& sourceRects,
2201                 const core::rect<s32>* clipRect=0,
2202                 SColor color=SColor(255,255,255,255),
2203                 bool useAlphaChannelOfTexture=false) =0;
2204         virtual void turnLightOn(s32 lightIndex, bool turnOn) =0;
2205         virtual bool writeImageToFile(IImage* image, io::IWriteFile* file, u32 param =0) =0;
2206         virtual IImage* createImage(ITexture* texture,
2207                 const core::position2d<s32>& pos, const core::dimension2d<u32>& size) =0;
2208         virtual void setMinHardwareBufferVertexCount(u32 count) =0;
2209         virtual SOverrideMaterial& getOverrideMaterial() =0;
2210 Changed parameters to use io::path
2211         virtual ITexture* getTexture(const io::path& filename) = 0;
2212         virtual void renameTexture(ITexture* texture, const io::path& newName) = 0;
2213         virtual ITexture* addTexture(const io::path& name, IImage* image) = 0;
2214         virtual IImage* createImageFromFile(const io::path& filename) = 0;
2215         virtual bool writeImageToFile(IImage* image, const io::path& filename, u32 param = 0) = 0;
2216         virtual video::ITexture* findTexture(const io::path& filename) = 0;
2217 Changed signedness
2218         virtual ITexture* addTexture(const core::dimension2d<u32>& size,
2219                 const io::path& name, ECOLOR_FORMAT format = ECF_A8R8G8B8) = 0;
2220         virtual const core::dimension2d<u32>& getScreenSize() const =0;
2221         virtual const core::dimension2d<u32>& getCurrentRenderTargetSize() const =0;
2222         virtual IImage* createImageFromData(ECOLOR_FORMAT format,
2223                 const core::dimension2d<u32>& size, void *data,
2224                 bool ownForeignMemory=false,
2225                 bool deleteMemory = true) =0;
2226         virtual IImage* createImage(ECOLOR_FORMAT format, const core::dimension2d<u32>& size) =0;
2227         virtual IImage* createImage(IImage* imageToCopy,
2228                 const core::position2d<s32>& pos,
2229                 const core::dimension2d<u32>& size) =0;
2230         virtual void OnResize(const core::dimension2d<u32>& size) =0;
2231 Changed signedness and usage of io::path
2232         virtual ITexture* addRenderTargetTexture(const core::dimension2d<u32>& size,
2233                 const io::path& name = "rt", const ECOLOR_FORMAT format = ECF_UNKNOWN) =0;
2234 Removed deprecated method
2235         virtual ITexture* createRenderTargetTexture(const core::dimension2d<s32>& size,
2236                 const c8* name=0) =0;
2237 New parameter
2238         virtual void makeColorKeyTexture(video::ITexture* texture,
2239                 video::SColor color, bool zeroTexels = false) const =0;
2240         virtual void makeColorKeyTexture(video::ITexture* texture,
2241                 core::position2d<s32> colorKeyPixelPos, bool zeroTexels = false) const =0;
2242 Changed parameters
2243         virtual void setFog(SColor color=SColor(0,255,255,255),
2244                 E_FOG_TYPE fogType=EFT_FOG_LINEAR,
2245                 f32 start=50.0f, f32 end=100.0f, f32 density=0.01f,
2246                 bool pixelFog=false, bool rangeFog=false) =0;
2247 Changed return types
2248         virtual s32 addDynamicLight(const SLight& light) =0;
2249
2250 EDriverFeatures.h
2251 New enum values
2252         EVDF_ALPHA_TO_COVERAGE,
2253         EVDF_COLOR_MASK,
2254
2255 IGUIScrollBar.h
2256 New methods
2257         virtual void setMin(s32 max) = 0;
2258         virtual s32 getMin() const = 0;
2259
2260 IQ3LevelMesh.h
2261 Removed method
2262         virtual void releaseMesh(s32 index) = 0;
2263 Made return value non-const
2264         virtual quake3::tQ3EntityList& getEntityList() = 0;
2265
2266 ISceneCollisionManager.h
2267 New parameter
2268         virtual bool getCollisionPoint(const core::line3d<f32>& ray,
2269                 ITriangleSelector* selector, core::vector3df& outCollisionPoint,
2270                 core::triangle3df& outTriangle, const ISceneNode*& outNode) =0;
2271         virtual core::vector3df getCollisionResultPosition(
2272                 ITriangleSelector* selector,
2273                 const core::vector3df &ellipsoidPosition,
2274                 const core::vector3df& ellipsoidRadius,
2275                 const core::vector3df& ellipsoidDirectionAndSpeed,
2276                 core::triangle3df& triout,
2277                 core::vector3df& hitPosition,
2278                 bool& outFalling,
2279                 const ISceneNode*& outNode,
2280                 f32 slidingSpeed = 0.0005f,
2281                 const core::vector3df& gravityDirectionAndSpeed = core::vector3df(0.0f, 0.0f, 0.0f)) = 0;
2282 Made parameter const&
2283         virtual core::line3d<f32> getRayFromScreenCoordinates(
2284                 const core::position2d<s32> & pos, ICameraSceneNode* camera = 0) = 0;
2285         virtual core::position2d<s32> getScreenCoordinatesFrom3DPosition(
2286                 const core::vector3df & pos, ICameraSceneNode* camera=0) = 0;
2287 Made parameter const& and added new parameter
2288         virtual ISceneNode* getSceneNodeFromScreenCoordinatesBB(const core::position2d<s32>& pos,
2289                 s32 idBitMask=0, bool bNoDebugObjects=false, ISceneNode* root=0) =0;
2290         virtual ISceneNode* getSceneNodeFromRayBB(const core::line3d<f32>& ray,
2291                 s32 idBitMask=0, bool bNoDebugObjects=false, ISceneNode* root=0) =0;
2292 New method
2293         virtual ISceneNode* getSceneNodeAndCollisionPointFromRay(
2294                 core::line3df ray, core::vector3df & outCollisionPoint,
2295                 core::triangle3df & outTriangle, s32 idBitMask = 0,
2296                 ISceneNode * collisionRootNode = 0, bool noDebugObjects = false) = 0;
2297
2298 irrlicht.h
2299 Changed interface of method (qualifiers and signedness)
2300         extern "C" IRRLICHT_API IrrlichtDevice* IRRCALLCONV createDevice(
2301                 video::E_DRIVER_TYPE deviceType = video::EDT_SOFTWARE,
2302                 // parantheses are necessary for some compilers
2303                 const core::dimension2d<u32>& windowSize = (core::dimension2d<u32>(640,480)),
2304                 u32 bits = 16,
2305                 bool fullscreen = false,
2306                 bool stencilbuffer = false,
2307                 bool vsync = false,
2308                 IEventReceiver* receiver = 0);
2309         extern "C" IRRLICHT_API IrrlichtDevice* IRRCALLCONV createDeviceEx(
2310                 const SIrrlichtCreationParameters& parameters);
2311
2312 IImageLoader.h
2313 Changed parameters to use io::path
2314         virtual bool isALoadableFileExtension(const io::path& filename) const = 0;
2315
2316 IGUIWindow.h
2317 New methods
2318         virtual bool isDraggable() const = 0;
2319         virtual void setDraggable(bool draggable) = 0;
2320         virtual void setDrawBackground(bool draw) = 0;
2321         virtual bool getDrawBackground() const = 0;
2322         virtual void setDrawTitlebar(bool draw) = 0;
2323         virtual bool getDrawTitlebar() const = 0;
2324
2325 ICameraSceneNode.h
2326 New methods
2327         virtual void setViewMatrixAffector(const core::matrix4& affector) =0;
2328         virtual const core::matrix4& getViewMatrixAffector() const =0;
2329
2330 EGUIElementTypes.h
2331 New enum value
2332         EGUIET_TREE_VIEW,
2333
2334 IImageWriter.h
2335 Changed parameters to use io::path
2336         virtual bool isAWriteableFileExtension(const io::path& filename) const = 0;
2337
2338 SIrrCreationParameters.h
2339 Added members
2340         E_DEVICE_TYPE DeviceType;
2341         bool Doublebuffer;
2342         bool Stereobuffer;
2343 Changed signedness
2344         core::dimension2d<u32> WindowSize;
2345 Changed type (from bool)
2346         u8 AntiAlias;
2347
2348 matrix4.h
2349 New methods
2350         bool isOrthogonal() const;
2351         CMatrix4<T>& buildRotateFromTo(const core::vector3df& from, const core::vector3df& to);
2352         void setRotationCenter(const core::vector3df& center, const core::vector3df& translate);
2353         void buildAxisAlignedBillboard( const core::vector3df& camPos,
2354                 const core::vector3df& center, const core::vector3df& translation,
2355                 const core::vector3df& axis, const core::vector3df& from);
2356
2357 IWriteFile.h
2358 Changed parameters to use io::path
2359         virtual const path& getFileName() const = 0;
2360
2361 IGUITable.h
2362 New methods
2363         virtual void setSelected( s32 index ) = 0;
2364 Changed type (from wide c string)
2365         virtual void setCellText(u32 rowIndex, u32 columnIndex, const core::stringw& text) = 0;
2366         virtual void setCellText(u32 rowIndex, u32 columnIndex, const core::stringw& text, video::SColor color) = 0;
2367
2368 SKeyMap.h
2369 New enum value
2370         EKA_CROUCH,
2371
2372 IGUIFont.h
2373 Changed type (from wide c string)
2374         virtual void draw(const core::stringw& text, const core::rect<s32>& position,
2375                 video::SColor color, bool hcenter=false, bool vcenter=false,
2376                 const core::rect<s32>* clip=0) = 0;
2377 Changed signedness
2378         virtual core::dimension2d<u32> getDimension(const wchar_t* text) const = 0;
2379 New method
2380         virtual void setInvisibleCharacters( const wchar_t *s ) = 0;
2381
2382 IMeshCache.h
2383 Changed parameters to use io::path
2384         virtual void addMesh(const io::path& filename, IAnimatedMesh* mesh) = 0;
2385         virtual IAnimatedMesh* getMeshByFilename(const io::path& filename) = 0;
2386         virtual const io::path& getMeshFilename(u32 index) const = 0;
2387         virtual const io::path& getMeshFilename(const IAnimatedMesh* const mesh) const = 0;
2388         virtual const io::path& getMeshFilename(const IMesh* const mesh) const = 0;
2389         virtual bool setMeshFilename(u32 index, const io::path& filename) = 0;
2390         virtual bool setMeshFilename(const IAnimatedMesh* const mesh, const io::path& filename) = 0;
2391         virtual bool setMeshFilename(const IMesh* const mesh, const io::path& filename) = 0;
2392         virtual bool isMeshLoaded(const io::path& filename) = 0;
2393
2394 IGUIButton.h
2395 Added default value
2396         virtual void setImage(video::ITexture* image=0) = 0;
2397         virtual void setPressedImage(video::ITexture* image=0) = 0;
2398         virtual void setSpriteBank(IGUISpriteBank* bank=0) = 0;
2399         virtual void setIsPushButton(bool isPushButton=true) = 0;
2400         virtual void setPressed(bool pressed=true) = 0;
2401         virtual void setUseAlphaChannel(bool useAlphaChannel=true) = 0;
2402         virtual void setDrawBorder(bool border=true) = 0;
2403 New methods
2404         virtual void setScaleImage(bool scaleImage=true) = 0;
2405         virtual bool isScalingImage() const = 0;
2406
2407 position2d.h
2408 Replaced by vector2d
2409
2410 IGUIImageList.h
2411 New interface
2412         class IGUIImageList : public virtual IReferenceCounted
2413
2414 rect.h
2415 Added second template parameter to allow mismatched signedness
2416         template <class U>
2417         rect(const position2d<T>& pos, const dimension2d<U>& size)
2418
2419 IParticleEmitter.h
2420 Removed wrong overrides
2421         virtual void serializeAttributes(io::IAttributes* out,
2422                 io::SAttributeReadWriteOptions* options=0) const {}
2423         virtual s32 deserializeAttributes(s32 startIndex, io::IAttributes* in,
2424                 io::SAttributeReadWriteOptions* options=0) { return 0; }
2425
2426 IOSOperator.h
2427 Return const string
2428         virtual const c8* getTextFromClipboard() const = 0;
2429
2430 IGUIElement.h
2431 Signedness change
2432         void setMaxSize(core::dimension2du size)
2433         void setMinSize(core::dimension2du size)
2434
2435 IReadFile.h
2436 Changed parameters to use io::path
2437         virtual const io::path& getFileName() const = 0;
2438         IReadFile* createReadFile(const io::path& fileName);
2439         IReadFile* createLimitReadFile(const io::path& fileName, IReadFile* alreadyOpenedFile, long pos, long areaSize);
2440         IReadFile* createMemoryReadFile(void* memory, long size, const io::path& fileName, bool deleteMemoryWhenDropped);
2441
2442 IGUITabControl.h
2443 New methods
2444         virtual void setTabMaxWidth(s32 width ) = 0;
2445         virtual s32 getTabMaxWidth() const = 0;
2446
2447 IParticleAffector.h
2448 Removed wrong overrides
2449         virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options=0) const {}
2450         virtual s32 deserializeAttributes(s32 startIndex, io::IAttributes* in, io::SAttributeReadWriteOptions* options=0) { return 0; }
2451
2452 ILogger.h
2453 New method
2454         virtual void log(const c8* text, const wchar_t* hint, ELOG_LEVEL ll=ELL_INFORMATION) = 0;
2455
2456 vector2d.h
2457 New methods
2458         vector2d(const dimension2d<T>& other) : X(other.Width), Y(other.Height) {}
2459         vector2d<T>& operator=(const dimension2d<T>& other) { X = other.Width; Y = other.Height; return *this; }
2460         vector2d<T> operator+(const dimension2d<T>& other) const { return vector2d<T>(X + other.Width, Y + other.Height); }
2461         vector2d<T>& operator+=(const dimension2d<T>& other) { X += other.Width; Y += other.Height; return *this;  }
2462         vector2d<T> operator-(const dimension2d<T>& other) const { return vector2d<T>(X - other.Width, Y - other.Height); }
2463         vector2d<T>& operator-=(const dimension2d<T>& other) { X -= other.Width; Y -= other.Height; return *this;  }
2464         // These methods are declared in dimension2d, but need definitions of vector2d
2465         template<class T>
2466         dimension2d<T>::dimension2d(const vector2d<T>& other) : Width(other.X), Height(other.Y) { }
2467         template<class T>
2468         bool dimension2d<T>::operator==(const vector2d<T>& other) const { return Width == other.X && Height == other.Y; }
2469
2470 Changes for Version 1.6.1
2471 -------------------------
2472 This is again just a bugfix release. However, some minor API changes have happened. The most important one is the removal of lins anti-aliasing from SMaterial's default values. Please add that line smoothing flag to the materials you want to be smoothed. But note that this may lead to drastically reduced performance, if no multi-sampling is active.
2473
2474 IFileList.h
2475 new methods
2476         virtual u32 getID(u32 index) const = 0;
2477         virtual u32 addItem(const io::path& fullPath, u32 size, bool isDirectory, u32 id=0) = 0;
2478         virtual void sort() = 0;
2479
2480 IrrCompileConfig.h
2481 Removed auto recognition of Solaris OS, please define the setting on your own if you need it
2482         _IRR_SOLARIS_PLATFORM_
2483
2484 IGUITreeView.h
2485 removed methods (use automatically generated versions)
2486         IGUITreeViewNode() {}
2487         virtual ~IGUITreeViewNode() {}
2488         virtual ~IGUITreeView() {}
2489
2490 IFileSystem.h
2491 new method
2492         virtual IFileList* createEmptyFileList(const io::path& path, bool ignoreCase, bool ignorePaths) =0;
2493
2494 SMaterial.h
2495 Removed default value (EAAM_LINE_SMOOTH from AntiAliasing)
2496         ZBuffer(ECFN_LESSEQUAL), AntiAliasing(EAAM_SIMPLE), ColorMask(ECP_ALL),
2497
2498 IGUISkin.h
2499 new enum value
2500         EGST_COUNT
2501
2502
2503 Changes for Version 1.7
2504 -------------------------
2505 This version has less API-breaking changes than the previous major changes. It has many new features, which simply add methods. All those changes, which affect old methods or structures are mostly put in parallel to the old (and now deprecated) methods. Only a few things are changed without backward compatibility: The texture wrap mode is split into separate U and V modes. The beginScene void* parameter has been replaced by an SExposedVideoData. Simply wrap the pointer with this struct and it should work again.
2506 EMIE_LMOUSE_DOUBLE_CLICK replaces EMIE_MOUSE_DOUBLE_CLICK and EMIE_LMOUSE_TRIPLE_CLICK replaces EMIE_MOUSE_TRIPLE_CLICK
2507 Elements used in the array container need now to have an operator= 
2508 Here comes the full list:
2509
2510 path.h
2511 New type
2512 struct SNamedPath
2513  
2514 triangle3d.h
2515 New method
2516 bool isTotalOutsideBox(const aabbox3d<T>& box) const
2517
2518 ESceneNodeTypes.h
2519 Changed enum value (from octt)
2520 ESNT_OCTREE         = MAKE_IRR_ID('o','c','t','r'),
2521  
2522 SColor.h
2523 New method
2524 f32 getLightness() const
2525
2526 driverChoice.h
2527 New method
2528 static irr::video::E_DRIVER_TYPE driverChoiceConsole(bool allDrivers=true)
2529
2530 ITexture.h
2531 New parameter
2532 virtual void regenerateMipMapLevels(void* mipmapData=0) = 0;
2533 Changed return value (from io:path) 
2534 const io::SNamedPath& getName() const { return NamedPath; }
2535  
2536 SceneParameters.h
2537 New scene parameters
2538 const c8* const OBJ_TEXTURE_PATH = "OBJ_TexturePath";
2539 const c8* const B3D_TEXTURE_PATH = "B3D_TexturePath";
2540  
2541 IMeshManipulator.h
2542 Not virtual anymore
2543 void setVertexColorAlpha(IMesh* mesh, s32 alpha) const
2544 void setVertexColors(IMesh* mesh, video::SColor color) const
2545 void scale(IMeshBuffer* buffer, const core::vector3df& factor) const
2546 void scaleMesh(IMesh* mesh, const core::vector3df& factor) const
2547 void scaleTCoords(scene::IMesh* mesh, const core::vector2df& factor, u32 level=1) const
2548 void scaleTCoords(scene::IMeshBuffer* buffer, const core::vector2df& factor, u32 level=1) const
2549 void transform(IMesh* mesh, const core::matrix4& m) const
2550 void transform(IMeshBuffer* buffer, const core::matrix4& m) const
2551 New method
2552 template <typename Functor>
2553 bool apply(const Functor& func, IMeshBuffer* buffer, bool boundingBoxUpdate=false) const
2554 template <typename Functor>
2555 bool apply(const Functor& func, IMesh* mesh, bool boundingBoxUpdate=false) const
2556 virtual void recalculateTangents(IMesh* mesh, bool recalculateNormals=false,
2557                 bool smooth=false, bool angleWeighted=false) const=0;
2558 void scale(IMesh* mesh, const core::vector3df& factor) const
2559 New parameter 
2560 virtual IMesh* createMeshWithTangents(IMesh* mesh, bool recalculateNormals=false, bool smooth=false, bool angleWeighted=false, bool recalculateTangents=true) const = 0;
2561  
2562 coreutil.h
2563 Changed return type and parameters (from stringc/w)
2564 inline io::path& cutFilenameExtension ( io::path &dest, const io::path &source )
2565 inline io::path& getFileNameExtension ( io::path &dest, const io::path &source )
2566 inline io::path& deletePathFromFilename(io::path& filename)
2567 Fixed behavior
2568 inline io::path& deletePathFromPath(io::path& filename, s32 pathCount)
2569  
2570 ICursorControl.h
2571 Return const-ref
2572 virtual const core::position2d<s32>& getPosition() = 0;
2573  
2574 irrArray.h
2575 Fixed allocator template usage
2576 array(const array<T, TAlloc>& other) : data(0)
2577 const array<T, TAlloc>& operator=(const array<T, TAlloc>& other)
2578 bool operator == (const array<T, TAlloc>& other) const
2579 bool operator != (const array<T, TAlloc>& other) const
2580 Changed behavior for free_when_destroyed
2581 void set_pointer(T* newPointer, u32 size, bool _is_sorted=false, bool _free_when_destroyed=true)
2582 void set_free_when_destroyed(bool f)
2583  
2584 irrMap.h
2585 Renamed method (from isEmpty)
2586 bool empty() const
2587 New method
2588 void swap(map<KeyType, ValueType>& other)
2589
2590 IAnimatedMesh.h
2591 virtual f32 getAnimationSpeed() const =0;
2592
2593 IAttributes.h
2594 Made parameters const-ref
2595 virtual void addArray(const c8* attributeName, const core::array<core::stringw>& value) = 0;
2596 virtual void setAttribute(const c8* attributeName, const core::array<core::stringw>& value) = 0;
2597 virtual void setAttribute(s32 index, const core::array<core::stringw>& value) = 0;
2598
2599 ISceneManager.h
2600 Renamed method (from OctTree)
2601 virtual IMeshSceneNode* addOctreeSceneNode(IAnimatedMesh* mesh, ISceneNode* parent=0,
2602                         s32 id=-1, s32 minimalPolysPerNode=512, bool alsoAddIfMeshPointerZero=false) = 0;
2603 virtual IMeshSceneNode* addOctreeSceneNode(IMesh* mesh, ISceneNode* parent=0,
2604                         s32 id=-1, s32 minimalPolysPerNode=256, bool alsoAddIfMeshPointerZero=false) = 0;
2605 virtual ITriangleSelector* createOctreeTriangleSelector(IMesh* mesh,
2606                 ISceneNode* node, s32 minimalPolysPerNode=32) = 0;
2607 New parameter (makeActive)
2608 virtual ICameraSceneNode* addCameraSceneNode(ISceneNode* parent = 0,
2609                 const core::vector3df& position = core::vector3df(0,0,0),
2610                 const core::vector3df& lookat = core::vector3df(0,0,100),
2611                 s32 id=-1, bool makeActive=true) = 0;
2612 virtual ICameraSceneNode* addCameraSceneNodeMaya(ISceneNode* parent = 0,
2613                 f32 rotateSpeed = -1500.0f, f32 zoomSpeed = 200.0f,
2614                 f32 translationSpeed = 1500.0f, s32 id=-1,
2615                 bool makeActive=true) = 0;
2616 virtual ICameraSceneNode* addCameraSceneNodeFPS(ISceneNode* parent = 0,
2617                 f32 rotateSpeed = 100.0f, f32 moveSpeed = 0.5f, s32 id=-1,
2618                 SKeyMap* keyMapArray=0, s32 keyMapSize=0, bool noVerticalMovement=false,
2619                 f32 jumpSpeed = 0.f, bool invertMouse=false,
2620                 bool makeActive=true) = 0;
2621 Make parameter const 
2622 virtual IMeshSceneNode* addQuake3SceneNode(const IMeshBuffer* meshBuffer, const quake3::IShader * shader,
2623                 ISceneNode* parent=0, s32 id=-1) = 0;
2624 New parameter (loop, pingpong)
2625 virtual ISceneNodeAnimator* createFollowSplineAnimator(s32 startTime,
2626                 const core::array< core::vector3df >& points,
2627                 f32 speed = 1.0f, f32 tightness = 0.5f, bool loop=true, bool pingpong=false) = 0;
2628
2629 SMaterialLayer.h
2630 New clamp modes
2631 ETC_MIRROR_CLAMP, ETC_MIRROR_CLAMP_TO_EDGE, ETC_MIRROR_CLAMP_TO_BORDER
2632 New material layer modes (replaces TextureWrap)
2633 TextureWrapU(ETC_REPEAT), TextureWrapV(ETC_REPEAT)
2634
2635 vector3d.h
2636 Use tolerance to compare, changed order function to total order
2637 bool operator<=(const vector3d<T>&other) const
2638 bool operator>=(const vector3d<T>&other) const
2639 bool operator<(const vector3d<T>&other) const
2640 bool operator>(const vector3d<T>&other) const
2641 New method 
2642 vector3d<T> getSphericalCoordinateAngles()
2643 New method specializations
2644 template <>
2645 inline vector3d<s32> vector3d<s32>::operator /(s32 val) const {return core::vector3d<s32>(X/val,Y/val,Z/val);}
2646 template <>
2647 inline vector3d<s32>& vector3d<s32>::operator /=(s32 val) {X/=val;Y/=val;Z/=val; return *this;}
2648  
2649 SExposedVideoData.h
2650 New constructors
2651 SExposedVideoData() {OpenGLWin32.HDc=0; OpenGLWin32.HRc=0; OpenGLWin32.HWnd=0;}
2652 explicit SExposedVideoData(void* Window) {OpenGLWin32.HDc=0; OpenGLWin32.HRc=0; OpenGLWin32.HWnd=Window;}
2653
2654 IGUIEnvironment.h
2655 New method
2656 virtual IGUIFont* addFont(const io::path& name, IGUIFont* font) = 0;
2657 New parameter (image)
2658 virtual IGUIWindow* addMessageBox(const wchar_t* caption, const wchar_t* text=0,
2659                 bool modal = true, s32 flags = EMBF_OK, IGUIElement* parent=0, s32 id=-1, video::ITexture* image=0) = 0;
2660  
2661 IGeometryCreator.h
2662 New method
2663 IMesh* createPlaneMesh(const core::dimension2d<f32>& tileSize,
2664                         const core::dimension2d<u32>& tileCount,
2665                         video::SMaterial* material,
2666                         const core::dimension2d<f32>& textureRepeatCount) const
2667
2668 IFileArchive.h
2669 New archive type
2670 EFAT_NPK     = MAKE_IRR_ID('N','P','K', 0),
2671 New member for storing the password of AES-encrypted archives
2672 core::stringc Password;
2673  
2674 IFileSystem.h
2675 New parameter (password)
2676 virtual bool addFileArchive(const path& filename, bool ignoreCase=true,
2677                 bool ignorePaths=true,
2678                 E_FILE_ARCHIVE_TYPE archiveType=EFAT_UNKNOWN,
2679                 const core::stringc& password="") =0;
2680
2681 IrrlichtDevice.h
2682 New method
2683 virtual void clearSystemMessages() = 0;
2684
2685 irrMath.h
2686 Changed constant (from 1)
2687 const s32 ROUNDING_ERROR_S32 = 0;
2688 New method
2689 template <class T>
2690 inline void swap(T& a, T& b)
2691
2692 IGPUProgrammingServices.h
2693 New parameters (for geometry shaders)
2694 virtual s32 addHighLevelShaderMaterial
2695 virtual s32 addHighLevelShaderMaterialFromFiles
2696 virtual s32 addHighLevelShaderMaterialFromFiles
2697 New overload (for calling with geometry shaders)
2698 s32 addHighLevelShaderMaterial
2699 s32 addHighLevelShaderMaterialFromFiles
2700 s32 addHighLevelShaderMaterialFromFiles
2701
2702 ISceneNode.h
2703 New types
2704         typedef core::list<ISceneNode*> ISceneNodeList;
2705         typedef core::list<ISceneNodeAnimator*> ISceneNodeAnimatorList;
2706  
2707 IEventReceiver.h
2708 Renamed events (split from EMIE_MOUSE_*)
2709 EMIE_LMOUSE_DOUBLE_CLICK,
2710 EMIE_RMOUSE_DOUBLE_CLICK,
2711 EMIE_MMOUSE_DOUBLE_CLICK,
2712 EMIE_LMOUSE_TRIPLE_CLICK,
2713 EMIE_RMOUSE_TRIPLE_CLICK,
2714 EMIE_MMOUSE_TRIPLE_CLICK,
2715  
2716 IGUISpriteBank.h
2717 New method
2718 virtual s32 addTextureAsSprite(video::ITexture* texture) = 0;
2719 virtual void clear() = 0;
2720
2721 SMaterial.h
2722 Changed binary packing (non-visible from user calls)
2723 inline f32 pack_texureBlendFunc ( const E_BLEND_FACTOR srcFact, const E_BLEND_FACTOR dstFact, const E_MODULATE_FUNC modulate=EMFN_MODULATE_1X, const u32 alphaSource=EAS_TEXTURE )
2724
2725 IGUISkin.h
2726 New values
2727 EGDS_MESSAGE_BOX_GAP_SPACE,
2728 EGDS_MESSAGE_BOX_MIN_TEXT_WIDTH,
2729 EGDS_MESSAGE_BOX_MAX_TEST_WIDTH,
2730 EGDS_MESSAGE_BOX_MIN_TEXT_HEIGHT,
2731 EGDS_MESSAGE_BOX_MAX_TEXT_HEIGHT,
2732 New parameter (checkClientArea)
2733 virtual core::rect<s32> draw3DWindowBackground(IGUIElement* element,
2734                         bool drawTitleBar, video::SColor titleBarColor,
2735                         const core::rect<s32>& rect,
2736                         const core::rect<s32>* clip=0,
2737                         core::rect<s32>* checkClientArea=0) = 0;
2738  
2739 quaternion.h
2740 New operator
2741 bool operator!=(const quaternion& other) const;
2742 New method
2743 inline quaternion& set(const core::quaternion& quat);
2744 inline bool equals(const quaternion& other,
2745                 const f32 tolerance = ROUNDING_ERROR_f32 ) const;
2746
2747 irrList.h
2748 New method
2749 u32 size() const
2750 void swap(list<T>& other)
2751  
2752 IVideoDriver.h
2753 New render targets
2754 ERT_MULTI_RENDER_TEXTURES
2755 New class 
2756 struct IRenderTarget
2757 Changed parameter (from void*)
2758 virtual bool beginScene(bool backBuffer=true, bool zBuffer=true,
2759                 SColor color=SColor(255,0,0,0),
2760                 const SExposedVideoData& videoData=SExposedVideoData(),
2761                 core::rect<s32>* sourceRect=0) =0;
2762 New parameter (mipmapData)
2763 virtual ITexture* addTexture(const io::path& name, IImage* image, void* mipmapData=0) = 0;
2764 New method
2765 virtual bool setRenderTarget(const core::array<video::IRenderTarget>& texture,
2766                 bool clearBackBuffer=true, bool clearZBuffer=true,
2767                 SColor color=video::SColor(0,0,0,0)) =0;
2768 void drawIndexedTriangleFan(const S3DVertexTangents* vertices,
2769                 u32 vertexCount, const u16* indexList, u32 triangleCount)
2770 virtual void getFog(SColor& color, E_FOG_TYPE& fogType,
2771                 f32& start, f32& end, f32& density,
2772                 bool& pixelFog, bool& rangeFog) = 0;
2773 virtual SMaterial& getMaterial2D() =0;
2774 virtual void enableMaterial2D(bool enable=true) =0;
2775 virtual core::dimension2du getMaxTextureSize() const =0;
2776 Made non-virtual
2777 void drawIndexedTriangleList(const S3DVertex* vertices,
2778                 u32 vertexCount, const u16* indexList, u32 triangleCount)
2779 void drawIndexedTriangleList(const S3DVertex2TCoords* vertices,
2780                 u32 vertexCount, const u16* indexList, u32 triangleCount)
2781 void drawIndexedTriangleList(const S3DVertexTangents* vertices,
2782                 u32 vertexCount, const u16* indexList, u32 triangleCount)
2783 void drawIndexedTriangleFan(const S3DVertex* vertices,
2784                 u32 vertexCount, const u16* indexList, u32 triangleCount)
2785 void drawIndexedTriangleFan(const S3DVertex2TCoords* vertices,
2786                 u32 vertexCount, const u16* indexList, u32 triangleCount)
2787  
2788 EDriverFeatures.h
2789 New driver feature enums
2790 EVDF_MULTIPLE_RENDER_TARGETS,
2791 EVDF_MRT_BLEND,
2792 EVDF_MRT_COLOR_MASK,
2793 EVDF_MRT_BLEND_FUNC,
2794 EVDF_GEOMETRY_SHADER,
2795
2796 IGUIWindow.h
2797 New method
2798 virtual core::rect<s32> getClientRect() const = 0;
2799  
2800 IGUIContextMenu.h
2801 New enum
2802 enum ECONTEXT_MENU_CLOSE
2803 New method
2804 virtual void setCloseHandling(ECONTEXT_MENU_CLOSE onClose) = 0;
2805 virtual ECONTEXT_MENU_CLOSE getCloseHandling() const = 0;
2806 virtual u32 insertItem(u32 idx, const wchar_t* text, s32 commandId=-1, bool enabled=true,
2807                 bool hasSubMenu=false, bool checked=false, bool autoChecking=false) = 0;
2808 virtual s32 findItemWithCommandId(s32 commandId, u32 idxStartSearch=0) const = 0;
2809 virtual void setItemAutoChecking(u32 idx, bool autoChecking) = 0;
2810 virtual bool getItemAutoChecking(u32 idx) const = 0;
2811 virtual void setEventParent(IGUIElement *parent) = 0;
2812 New parameter 
2813 virtual u32 addItem(const wchar_t* text, s32 commandId=-1, bool enabled=true,
2814                 bool hasSubMenu=false, bool checked=false, bool autoChecking=false) = 0;
2815  
2816 SIrrCreationParameters.h
2817 New parameter (LoggingLevel)
2818 createDevice
2819  
2820 matrix4.h
2821 New method
2822 bool equals(const core::CMatrix4<T>& other, const T tolerance=(T)ROUNDING_ERROR_f64) const;
2823
2824 SSkinMeshBuffer.h
2825 Renamed method (from MoveTo_2TCoords)
2826 virtual void convertTo2TCoords()
2827 Renamed method (from MoveTo_Tangents)
2828 virtual void convertToTangents()
2829
2830 SVertexManipulator.h
2831 New classes (for vertex manipulation)
2832 class SVertexColorSetManipulator : public IVertexManipulator
2833 class SVertexColorSetAlphaManipulator : public IVertexManipulator
2834 class SVertexColorInvertManipulator : public IVertexManipulator
2835 class SVertexColorThresholdManipulator : public IVertexManipulator
2836 class SVertexColorBrightnessManipulator : public IVertexManipulator
2837 class SVertexColorContrastManipulator : public IVertexManipulator
2838 class SVertexColorContrastBrightnessManipulator : public IVertexManipulator
2839 class SVertexColorGammaManipulator : public IVertexManipulator
2840 ;
2841 class SVertexColorScaleManipulator : public IVertexManipulator
2842 class SVertexColorDesaturateToLightnessManipulator : public IVertexManipulator
2843 class SVertexColorDesaturateToAverageManipulator : public IVertexManipulator
2844 class SVertexColorDesaturateToLuminanceManipulator : public IVertexManipulator
2845 class SVertexColorInterpolateLinearManipulator : public IVertexManipulator
2846 class SVertexColorInterpolateQuadraticManipulator : public IVertexManipulator
2847 class SVertexPositionScaleManipulator : public IVertexManipulator
2848 ;
2849 class SVertexPositionScaleAlongNormalsManipulator : public IVertexManipulator
2850 class SVertexPositionTransformManipulator : public IVertexManipulator
2851 class SVertexTCoordsScaleManipulator : public IVertexManipulator
2852
2853 IMeshCache.h
2854 Renamed method (from getMeshByFilename)
2855 virtual IAnimatedMesh* getMeshByName(const io::path& name) = 0;
2856 Renamed method and changed return type (from getMeshFilename/io::path) 
2857 virtual const io::SNamedPath& getMeshName(u32 index) const = 0;
2858 virtual const io::SNamedPath& getMeshName(const IAnimatedMesh* const mesh) const = 0;
2859 virtual const io::SNamedPath& getMeshName(const IMesh* const mesh) const = 0;
2860 Renamed method (from setMeshFilename)
2861 virtual bool renameMesh(u32 index, const io::path& name) = 0;
2862 virtual bool renameMesh(const IAnimatedMesh* const mesh, const io::path& name) = 0;
2863 virtual bool renameMesh(const IMesh* const mesh, const io::path& name) = 0;
2864  
2865 IGUIElement.h
2866 Changed parameter (to const-ref)
2867  IGUIElement(EGUI_ELEMENT_TYPE type, IGUIEnvironment* environment, IGUIElement* parent,
2868 s32 id, const core::rect<s32>& rectangle)
2869 New method
2870 virtual bool hasType(EGUI_ELEMENT_TYPE type) const
2871  
2872 irrString.h
2873 Changed parameter (to template with allocator) in all methods with templates
2874 Made destructor non-virtual
2875 ~string()
2876 Added parameter 
2877 s32 find(const B* const str, const u32 start = 0) const
2878 New method
2879 void remove(T c)
2880 void remove(const string<T,TAlloc> toRemove)
2881 void removeChars(const string<T,TAlloc> & characters)
2882 template<class container>
2883 u32 split(container& ret, const T* const c, u32 count=1, bool ignoreEmptyTokens=true, bool keepSeparators=false) const
2884  
2885 vector2d.h
2886 Use tolerance to compare, changed order function to total order
2887 bool operator<=(const vector2d<T>&other) const
2888 bool operator>=(const vector2d<T>&other) const
2889 bool operator<(const vector2d<T>&other) const
2890 bool operator>(const vector2d<T>&other) const
2891