aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/irrlicht-1.8/changes.txt
diff options
context:
space:
mode:
authorDavid Walter Seikel2013-01-13 18:54:10 +1000
committerDavid Walter Seikel2013-01-13 18:54:10 +1000
commit959831f4ef5a3e797f576c3de08cd65032c997ad (patch)
treee7351908be5995f0b325b2ebeaa02d5a34b82583 /libraries/irrlicht-1.8/changes.txt
parentAdd info about changes to Irrlicht. (diff)
downloadSledjHamr-959831f4ef5a3e797f576c3de08cd65032c997ad.zip
SledjHamr-959831f4ef5a3e797f576c3de08cd65032c997ad.tar.gz
SledjHamr-959831f4ef5a3e797f576c3de08cd65032c997ad.tar.bz2
SledjHamr-959831f4ef5a3e797f576c3de08cd65032c997ad.tar.xz
Remove damned ancient DOS line endings from Irrlicht. Hopefully I did not go overboard.
Diffstat (limited to 'libraries/irrlicht-1.8/changes.txt')
-rw-r--r--libraries/irrlicht-1.8/changes.txt10130
1 files changed, 5065 insertions, 5065 deletions
diff --git a/libraries/irrlicht-1.8/changes.txt b/libraries/irrlicht-1.8/changes.txt
index 14d0548..4516413 100644
--- a/libraries/irrlicht-1.8/changes.txt
+++ b/libraries/irrlicht-1.8/changes.txt
@@ -1,5065 +1,5065 @@
1Changes in 1.8 (7.11.2012) 1Changes in 1.8 (7.11.2012)
2 2
3 - Let sphere mesh use full opaque color, just as all the other ones do 3 - Let sphere mesh use full opaque color, just as all the other ones do
4 4
5 - Gcc on Win32 (MinGW) now also works with the _w file access functions when compiled with _IRR_WCHAR_FILESYSTEM. (thx @ alexzk for reporting compile troubles) 5 - Gcc on Win32 (MinGW) now also works with the _w file access functions when compiled with _IRR_WCHAR_FILESYSTEM. (thx @ alexzk for reporting compile troubles)
6 6
7 - Fix a bunch of off-by one errors in irr::core::string in functions equals_substring_ignore_case, findFirst, findFirstChar, findNext, findLast, findLastChar, replace, remove and removeChars. 7 - Fix a bunch of off-by one errors in irr::core::string in functions equals_substring_ignore_case, findFirst, findFirstChar, findNext, findLast, findLastChar, replace, remove and removeChars.
8 This prevents some potential memory access errors, find functions no longer try to find the \0, replace no longer replaces the \0 and remove no longer tries to remove it (which did remove the last character instead). 8 This prevents some potential memory access errors, find functions no longer try to find the \0, replace no longer replaces the \0 and remove no longer tries to remove it (which did remove the last character instead).
9 9
10 - matrix4::setRotationAxisRadians added 10 - matrix4::setRotationAxisRadians added
11 11
12 - user clipplanes fixed 12 - user clipplanes fixed
13 13
14 - Skip rendering of lines, points, and polygons, as these lead to crahses due to wrong access to the vertex lists. A fix would need major rewrite of the vertex cache, or at least some other render methods. 14 - Skip rendering of lines, points, and polygons, as these lead to crahses due to wrong access to the vertex lists. A fix would need major rewrite of the vertex cache, or at least some other render methods.
15 15
16 - Add mipmap generation for makeColorKeyTexture 16 - Add mipmap generation for makeColorKeyTexture
17 17
18 - Add another saveScene overload which allows to pass in a user-created XMLWriter. Patch suggested by eversilver. 18 - Add another saveScene overload which allows to pass in a user-created XMLWriter. Patch suggested by eversilver.
19 19
20 - quaternion conversions to and from matrix4 no longer invert rotations. 20 - quaternion conversions to and from matrix4 no longer invert rotations.
21 To test if your code was affected by this you can set IRR_TEST_BROKEN_QUATERNION_USE in quaternion.h and try to compile your application. 21 To test if your code was affected by this you can set IRR_TEST_BROKEN_QUATERNION_USE in quaternion.h and try to compile your application.
22 Then on all compile-errors when you pass the matrix to the quaternion you can replace the matrix transposed matrix. 22 Then on all compile-errors when you pass the matrix to the quaternion you can replace the matrix transposed matrix.
23 For all errors you get on getMatrix() you can use quaternion::getMatrix_transposed instead. 23 For all errors you get on getMatrix() you can use quaternion::getMatrix_transposed instead.
24 24
25 - CGUIEnvironment::loadGui - loading a gui into a target-element no longer messes up when the gui-file contained guienvironment serialization. 25 - CGUIEnvironment::loadGui - loading a gui into a target-element no longer messes up when the gui-file contained guienvironment serialization.
26 26
27 - Colladawriter now exports materials per node when those are used in Irrlicht 27 - Colladawriter now exports materials per node when those are used in Irrlicht
28 28
29 - Colladawriter now writing matrices for node transformations as old solution did not work with CDummyTransformationSceneNode's. 29 - Colladawriter now writing matrices for node transformations as old solution did not work with CDummyTransformationSceneNode's.
30 30
31 - Colladawriter no longer create an extra node for the scenemanger as <visual_scene> has that job in Collada. 31 - Colladawriter no longer create an extra node for the scenemanger as <visual_scene> has that job in Collada.
32 32
33 - Colladwriter no longer makes all Scenenodes children of ambient-light as that can be parallel on the same layer instead. 33 - Colladwriter no longer makes all Scenenodes children of ambient-light as that can be parallel on the same layer instead.
34 34
35 - Colladareader now creates the ambient-light correct instead of creating a point-light for it. 35 - Colladareader now creates the ambient-light correct instead of creating a point-light for it.
36 36
37 - Add new parameter to array reallocate function. This prevents a reallocation in case the array would become smaller. As the reallocation operation is quite time consuming, this can be avoided on request now, on the expense of more memory consumption. 37 - Add new parameter to array reallocate function. This prevents a reallocation in case the array would become smaller. As the reallocation operation is quite time consuming, this can be avoided on request now, on the expense of more memory consumption.
38 38
39 - Add IAnimatedMeshSceneNode::getLoopMode (asked for by JLouisB) 39 - Add IAnimatedMeshSceneNode::getLoopMode (asked for by JLouisB)
40 40
41 - CSceneNodeAnimatorCameraFPS now resets the key-input when it was disabled (thx @ gerdb for reporting and patch-proposal) 41 - CSceneNodeAnimatorCameraFPS now resets the key-input when it was disabled (thx @ gerdb for reporting and patch-proposal)
42 42
43 - Properly destroy OpenGL resources on linux (thx @curaga for the patch) 43 - Properly destroy OpenGL resources on linux (thx @curaga for the patch)
44 44
45 - Fix diplay bux in the attribute-panel of the GUIEditor. Fixes bug 3517314 (thx @Darkcoder for reporting). 45 - Fix diplay bux in the attribute-panel of the GUIEditor. Fixes bug 3517314 (thx @Darkcoder for reporting).
46 46
47 - Allow caching cursor position on X11 to work around slow XQueryPointer calls (thx @Hendu for reporting+patch proposal) 47 - Allow caching cursor position on X11 to work around slow XQueryPointer calls (thx @Hendu for reporting+patch proposal)
48 48
49 - Make sure after EGET_EDITBOX_ENTER and EGET_COMBO_BOX_CHANGED event processing no more code is executed for the corresponding editbox or combobox objects to allow clearing the environment on those actions (see comments on bug-id 2995838). 49 - Make sure after EGET_EDITBOX_ENTER and EGET_COMBO_BOX_CHANGED event processing no more code is executed for the corresponding editbox or combobox objects to allow clearing the environment on those actions (see comments on bug-id 2995838).
50 50
51 - Fix string::replace which failed replacing substrings at the end when the replacement was longer 51 - Fix string::replace which failed replacing substrings at the end when the replacement was longer
52 52
53 - Struct packing works now with gcc 4.7 changes on MinGW (thx @Sudi for reporting). 53 - Struct packing works now with gcc 4.7 changes on MinGW (thx @Sudi for reporting).
54 54
55 - Struct packing uses now same solution throughout (by including headers in corresponding places) 55 - Struct packing uses now same solution throughout (by including headers in corresponding places)
56 56
57 - User can now set characters used for decimal point in fast_atof for localisation. 57 - User can now set characters used for decimal point in fast_atof for localisation.
58 58
59 - Add parameter useAlphaChannel to second IGUIEnvironment::addImage function. 59 - Add parameter useAlphaChannel to second IGUIEnvironment::addImage function.
60 60
61 - Get rid of unnecessary warning "Could not load sprite bank because the file does not exist" for "#defaultfont". 61 - Get rid of unnecessary warning "Could not load sprite bank because the file does not exist" for "#defaultfont".
62 62
63 - Fix MRT disabling. Bug found and fixed by hendu. 63 - Fix MRT disabling. Bug found and fixed by hendu.
64 64
65 - core:::array::reallocate returning now immediately when it has nothing to do. Should reduce a lot of memory thrashing on irrArrays. 65 - core:::array::reallocate returning now immediately when it has nothing to do. Should reduce a lot of memory thrashing on irrArrays.
66 66
67 - Start mesh animations at first OnAnimate , before start-frame was rather random. Thx @Auria for reporting and patch proposal. 67 - Start mesh animations at first OnAnimate , before start-frame was rather random. Thx @Auria for reporting and patch proposal.
68 68
69 - renderTargetTexture now working with ECF_R5G6B5 69 - renderTargetTexture now working with ECF_R5G6B5
70 70
71 - add -fPic in c::b linux fast math shared build. 71 - add -fPic in c::b linux fast math shared build.
72 72
73 - Fix by Auria for starting the animated meshes only at first OnAnimate instead of at random times and animation frames. 73 - Fix by Auria for starting the animated meshes only at first OnAnimate instead of at random times and animation frames.
74 74
75 - Add support for MAX_COMBINED_TEXTURES, which allows more texture support than with the original fixed pipeline texture check under OpenGL. Now, more than 4 textures should also work with newer gfx cards and drivers, which often only support 4 fixed pipeline textures. 75 - Add support for MAX_COMBINED_TEXTURES, which allows more texture support than with the original fixed pipeline texture check under OpenGL. Now, more than 4 textures should also work with newer gfx cards and drivers, which often only support 4 fixed pipeline textures.
76 76
77 - triangle3d::isPointInsideFast now using some epsilon to catch all points on the borders. 77 - triangle3d::isPointInsideFast now using some epsilon to catch all points on the borders.
78 78
79 - triangle3d::getIntersectionOfPlaneWithLine calculates now with higher precision for more exact results. 79 - triangle3d::getIntersectionOfPlaneWithLine calculates now with higher precision for more exact results.
80 80
81 - triangle3d::isOnSameSide (used by isPointInside) calculates now with higher precision and uses some epsilon to make it work with larger integers and less floating point troubles. Slightly slower now. 81 - triangle3d::isOnSameSide (used by isPointInside) calculates now with higher precision and uses some epsilon to make it work with larger integers and less floating point troubles. Slightly slower now.
82 82
83 - new function equalsByUlp to test for spacing between floating point numbers. 83 - new function equalsByUlp to test for spacing between floating point numbers.
84 84
85 - speedup for collada writing. 85 - speedup for collada writing.
86 86
87 - speedup for xml-writing. 87 - speedup for xml-writing.
88 88
89 - Fix 8bit grey image TGAs, which were not working due to missing palette. Also switched to RGB8 format, as otherwise a loss in precision would occur. Thanks to Klunk for the error report and a test image. 89 - Fix 8bit grey image TGAs, which were not working due to missing palette. Also switched to RGB8 format, as otherwise a loss in precision would occur. Thanks to Klunk for the error report and a test image.
90 90
91 - fixed issues with a D3D driver and Aero effects. 91 - fixed issues with a D3D driver and Aero effects.
92 92
93 - Fix font-drawing in CGUIButton to use EGDF_BUTTON again (thx @DJLinux for reporting). 93 - Fix font-drawing in CGUIButton to use EGDF_BUTTON again (thx @DJLinux for reporting).
94 94
95 - Add texture cache with proper reference handling. This avoids deletion of textures while still being active on the GPU. Test case and fix by m(att)giuca 95 - Add texture cache with proper reference handling. This avoids deletion of textures while still being active on the GPU. Test case and fix by m(att)giuca
96 96
97 - CFileSystem::removeFileArchive now checking for normalized path 97 - CFileSystem::removeFileArchive now checking for normalized path
98 98
99 - Fix zip's with passwords on 64-bit systems (thx @ Dr. Gladman for writing the bugfix) 99 - Fix zip's with passwords on 64-bit systems (thx @ Dr. Gladman for writing the bugfix)
100 100
101 - replace asserts in tests with macro assert_log to allow running all tests through on problems. 101 - replace asserts in tests with macro assert_log to allow running all tests through on problems.
102 102
103 - added IGUIElement::setName and IGUIElement::getName (similar to ISceneNode) 103 - added IGUIElement::setName and IGUIElement::getName (similar to ISceneNode)
104 104
105 - irr::s64 support 105 - irr::s64 support
106 106
107 - line2d::getClosestPoint can now also get the closest point on the line additional to only checking for closest point on the line-segment. 107 - line2d::getClosestPoint can now also get the closest point on the line additional to only checking for closest point on the line-segment.
108 108
109 - avoid division by zero in line2d::getClosestPoint when start- and endpoint are identical 109 - avoid division by zero in line2d::getClosestPoint when start- and endpoint are identical
110 110
111 - Support for sw drivers under OSX 111 - Support for sw drivers under OSX
112 112
113 - Fix font-loading which got broken by fixed xml-loading. Thanks @ pc0de for finding and providing a test and patch. 113 - Fix font-loading which got broken by fixed xml-loading. Thanks @ pc0de for finding and providing a test and patch.
114 114
115 - Don't crash draw2DSpriteBatch when it get's no textures. 115 - Don't crash draw2DSpriteBatch when it get's no textures.
116 116
117 - Add support for int passing in setShaderConstant 117 - Add support for int passing in setShaderConstant
118 118
119 - Support for better collada texture wrapping support on loading. 119 - Support for better collada texture wrapping support on loading.
120 120
121 - Fix for render context change where only the window id is given. We now try to change only the window ID, keeping context and display unchanged. Suggestion by vovo4ka from the forum. 121 - Fix for render context change where only the window id is given. We now try to change only the window ID, keeping context and display unchanged. Suggestion by vovo4ka from the forum.
122 122
123 - XML-reader now ignores all whitespace-only EXN_TEXT elements as old way didn't work in cross-platform way (and arguably also not well on Windows). 123 - XML-reader now ignores all whitespace-only EXN_TEXT elements as old way didn't work in cross-platform way (and arguably also not well on Windows).
124 124
125 - CXMLReader initializes IsEmptyElement now. 125 - CXMLReader initializes IsEmptyElement now.
126 126
127 - line2d::intersectWith and and line2d::getClosestPoint work now also with integers. 127 - line2d::intersectWith and and line2d::getClosestPoint work now also with integers.
128 128
129 - line2d::getMiddle and line3d::getMiddle work now also with integers. But can be slower for compilers which are not optimizing division by 2 to multiplication by 0.5 for floats. 129 - line2d::getMiddle and line3d::getMiddle work now also with integers. But can be slower for compilers which are not optimizing division by 2 to multiplication by 0.5 for floats.
130 130
131 - Add Nadro's initial Cg support. Example 10 is enhanced to allow also Cg shaders. 131 - Add Nadro's initial Cg support. Example 10 is enhanced to allow also Cg shaders.
132 132
133 - Add mipmap support from FBO extension, patch by Nadro. 133 - Add mipmap support from FBO extension, patch by Nadro.
134 134
135 - Add vertex optimization algorithm submitted by curaga 135 - Add vertex optimization algorithm submitted by curaga
136 136
137 - rename texureBlend functions to textureBlend 137 - rename texureBlend functions to textureBlend
138 138
139 - Add threshold for slerp calculation, switching between linear and slerp at this point. 139 - Add threshold for slerp calculation, switching between linear and slerp at this point.
140 140
141 - Fix for bug 3401933 - vertex color interpolation with shadow volumes in the scene 141 - Fix for bug 3401933 - vertex color interpolation with shadow volumes in the scene
142 142
143 - Fixed bug in button sprites reported by RdR 143 - Fixed bug in button sprites reported by RdR
144 144
145 - Fixed button state sprite animations for pressed, focused and hovered. 145 - Fixed button state sprite animations for pressed, focused and hovered.
146 146
147 - Added serialization for terrain smooth factor, patch by RdR 147 - Added serialization for terrain smooth factor, patch by RdR
148 148
149 - Implemented more button states for sprite banks, patch submitted by RdR 149 - Implemented more button states for sprite banks, patch submitted by RdR
150 150
151 - Add IGUIEnvironment::getHovered to get the element most recently known to be under the mouse cursor 151 - Add IGUIEnvironment::getHovered to get the element most recently known to be under the mouse cursor
152 152
153 - Add FPS settings for animated meshes, which allows to push animation speed from files to Irrlicht animation system 153 - Add FPS settings for animated meshes, which allows to push animation speed from files to Irrlicht animation system
154 154
155 - Maya camera updates 155 - Maya camera updates
156 156
157 - Add support for bsp brush entities. Written by Hendu. 157 - Add support for bsp brush entities. Written by Hendu.
158 158
159 - weighted normals recalculation fixed 159 - weighted normals recalculation fixed
160 160
161 - Billboard improvements 161 - Billboard improvements
162 162
163 - API docs updates 163 - API docs updates
164 164
165 - triangle selector improvements 165 - triangle selector improvements
166 166
167 - OSX improvements by Auria 167 - OSX improvements by Auria
168 168
169 - Add new methods for adding and removing file archives based on ifilearchive pointers. 169 - Add new methods for adding and removing file archives based on ifilearchive pointers.
170 170
171 - Add getBackgroundColor, isDrawBackgroundEnabled and isDrawBorderEnabled to IGUIStaticText (thx 4 patch from Nalin). 171 - Add getBackgroundColor, isDrawBackgroundEnabled and isDrawBorderEnabled to IGUIStaticText (thx 4 patch from Nalin).
172 172
173 - Reduction of multiple skinning the same mesh and frame in one render cycle 173 - Reduction of multiple skinning the same mesh and frame in one render cycle
174 174
175 - Added ISceneNodeAnimatorCameraFPS::getKeyMap and a new ISceneNodeAnimatorCameraFPS::setKeyMap. 175 - Added ISceneNodeAnimatorCameraFPS::getKeyMap and a new ISceneNodeAnimatorCameraFPS::setKeyMap.
176 176
177 - CSceneNodeAnimatorCameraFPS uses now SKeyMap instead of SCamKeyMap (structs were identical which was confusing and there wasn't any explanation in comments, so I decided to simplify it). 177 - CSceneNodeAnimatorCameraFPS uses now SKeyMap instead of SCamKeyMap (structs were identical which was confusing and there wasn't any explanation in comments, so I decided to simplify it).
178 178
179 - Add some workaround to MeshViewer to show how we can currently fix the FPS-cam when users to alt-tab while moving. We can improve that some day when we have focus-events, but this works for now. 179 - Add some workaround to MeshViewer to show how we can currently fix the FPS-cam when users to alt-tab while moving. We can improve that some day when we have focus-events, but this works for now.
180 180
181 - Fix LZMA decompression 181 - Fix LZMA decompression
182 182
183 - Ply normal fixes 183 - Ply normal fixes
184 184
185 - HW buffers only support rendering with both vertex and index buffers 185 - HW buffers only support rendering with both vertex and index buffers
186 186
187 - Enables VBOs for water node 187 - Enables VBOs for water node
188 188
189 - Octree support for non-standard vertex meshes 189 - Octree support for non-standard vertex meshes
190 190
191 - Fix rotationFromTo 191 - Fix rotationFromTo
192 192
193 - Added ConstIterator 193 - Added ConstIterator
194 194
195 - Fix for getScreenCoordinatesFrom3DPosition to use proper RTT sizes 195 - Fix for getScreenCoordinatesFrom3DPosition to use proper RTT sizes
196 196
197 - Add IGUIComboBox::setMaxSelectionRows and IGUIComboBox::getMaxSelectionRows 197 - Add IGUIComboBox::setMaxSelectionRows and IGUIComboBox::getMaxSelectionRows
198 198
199 - Scenemanager switches from type ESNT_UNKNOWN to type ESNT_SCENE_MANAGER. 199 - Scenemanager switches from type ESNT_UNKNOWN to type ESNT_SCENE_MANAGER.
200 200
201 - Add getActiveFont to all elements which have setOverrideFont for cleaner code 201 - Add getActiveFont to all elements which have setOverrideFont for cleaner code
202 202
203 - Add getOverrideFont to all elements which have setOverrideFont to have a consistent interface 203 - Add getOverrideFont to all elements which have setOverrideFont to have a consistent interface
204 204
205 - IGUIEditBox: added missing serialization for Border 205 - IGUIEditBox: added missing serialization for Border
206 206
207 - IGUIEditBox: remove bug that added spaces to the end of each line 207 - IGUIEditBox: remove bug that added spaces to the end of each line
208 208
209 - IGUIEditBox: fix crash that happened when wordwrapping was enabled, spaces were entered beyond the border and then cursor-key was pressed. 209 - IGUIEditBox: fix crash that happened when wordwrapping was enabled, spaces were entered beyond the border and then cursor-key was pressed.
210 210
211 - IGUIEditBox::setDrawBackground added. 211 - IGUIEditBox::setDrawBackground added.
212 212
213 - CGUISkin::draw3DSunkenPane no longer ignores fillBackGround in non-flat mode. Also borderlines are no longer drawn overlapping to avoid ugly corners. 213 - CGUISkin::draw3DSunkenPane no longer ignores fillBackGround in non-flat mode. Also borderlines are no longer drawn overlapping to avoid ugly corners.
214 214
215 - CDummyTransformationSceneNode::clone() added. 215 - CDummyTransformationSceneNode::clone() added.
216 216
217 - IParticleSystemSceneNode::doParticleSystem now public to allow rendering outside scenegraph. 217 - IParticleSystemSceneNode::doParticleSystem now public to allow rendering outside scenegraph.
218 218
219 - getRelativeFilenames updates and fixes 219 - getRelativeFilenames updates and fixes
220 220
221 - Renamed IOSOperator::getOperationSystemVersion to getOperatingSystemVersion. Changed return type from wchar_t to core::stringc, as that's the internal representation the name is built on. 221 - Renamed IOSOperator::getOperationSystemVersion to getOperatingSystemVersion. Changed return type from wchar_t to core::stringc, as that's the internal representation the name is built on.
222 222
223 - Added IGUITabControl::insertTab, IGUITabControl::removeTab, IGUITabControl::clear and IGUITabControl::getTabAt 223 - Added IGUITabControl::insertTab, IGUITabControl::removeTab, IGUITabControl::clear and IGUITabControl::getTabAt
224 224
225 - Add 32bit support to some mesh manipulator methods 225 - Add 32bit support to some mesh manipulator methods
226 226
227 - Fix mipmap locking under OpenGL 227 - Fix mipmap locking under OpenGL
228 228
229 - Improvement of screenshot function to support more color formats and targets 229 - Improvement of screenshot function to support more color formats and targets
230 230
231 - getAngle fix to avoid NaNs 231 - getAngle fix to avoid NaNs
232 232
233 - Available gfx memory output in log messages 233 - Available gfx memory output in log messages
234 234
235 - Improved 2d render settings and caching 235 - Improved 2d render settings and caching
236 236
237 - Initial suppport for sRGB render functions 237 - Initial suppport for sRGB render functions
238 238
239 - Improved terrain scene node rendering 239 - Improved terrain scene node rendering
240 240
241 - Paletted png image support fixed 241 - Paletted png image support fixed
242 242
243 - Gamma settings in image loaders improved 243 - Gamma settings in image loaders improved
244 244
245 - Support for relative filenames in serialization 245 - Support for relative filenames in serialization
246 246
247 - Access to selectors inside meta selectors implemented 247 - Access to selectors inside meta selectors implemented
248 248
249 - DirectInput joystick support 249 - DirectInput joystick support
250 250
251 - Support for scaling with draw2dimage with burnings video 251 - Support for scaling with draw2dimage with burnings video
252 252
253 - More gl extensions have correctly initialised return values 253 - More gl extensions have correctly initialised return values
254 254
255 - Some fixes for quaternion to euler function 255 - Some fixes for quaternion to euler function
256 256
257 - Properly return nullptr if RTT creation fails on low levels 257 - Properly return nullptr if RTT creation fails on low levels
258 258
259 - Added IGUIListBox::getItemAt 259 - Added IGUIListBox::getItemAt
260 260
261 - Add more image formats tried to load by q3 level loader 261 - Add more image formats tried to load by q3 level loader
262 262
263 - Add fast_atof improvements from assimp, also strtoul10 method 263 - Add fast_atof improvements from assimp, also strtoul10 method
264 264
265 - Add blend equation function for MRTs 265 - Add blend equation function for MRTs
266 266
267 - Add new material fields for blend operation and polygon offset (depth bias). 267 - Add new material fields for blend operation and polygon offset (depth bias).
268 268
269 - Reorder texture stage assignments 269 - Reorder texture stage assignments
270 270
271 - Improved VSync handling 271 - Improved VSync handling
272 272
273 - Fix Ogre loader for materials with more than one texture 273 - Fix Ogre loader for materials with more than one texture
274 274
275 - Fix createMeshCopy material handling 275 - Fix createMeshCopy material handling
276 276
277 - Framework target for OSX project added 277 - Framework target for OSX project added
278 278
279 - Terrain scene node fixes 279 - Terrain scene node fixes
280 280
281 - Fix HSL color class 281 - Fix HSL color class
282 282
283 - Fix color selection GUI element 283 - Fix color selection GUI element
284 284
285 - Transparency issues in particle system fixed 285 - Transparency issues in particle system fixed
286 286
287 - Particle sphere emitter rand values fixed 287 - Particle sphere emitter rand values fixed
288 288
289 - Support Unicode SHY dynamic hypen in word wrap 289 - Support Unicode SHY dynamic hypen in word wrap
290 290
291 - Fix OBJ reader sometimes running over EOF 291 - Fix OBJ reader sometimes running over EOF
292 292
293 - Added IGUITable::getColumnWidth 293 - Added IGUITable::getColumnWidth
294 294
295 - Billboard text animates in OnAnimate now 295 - Billboard text animates in OnAnimate now
296 296
297 - Fix mountpoint reader to properly sync file names and firectories 297 - Fix mountpoint reader to properly sync file names and firectories
298 298
299 - Added the ability to open an archive from an IReadFile*, added a FileToHeader tool with instructions of how to make a portable app that consists of a single executable file. 299 - Added the ability to open an archive from an IReadFile*, added a FileToHeader tool with instructions of how to make a portable app that consists of a single executable file.
300 300
301 - Added suppport for right-to-left (RTL) text, supplied by Auria from STK 301 - Added suppport for right-to-left (RTL) text, supplied by Auria from STK
302 302
303 - Added ISceneManager::createSceneNodeAnimator to create animators by name 303 - Added ISceneManager::createSceneNodeAnimator to create animators by name
304 304
305 - The Makefile now creates a symlink from the soname to the binary name during install. Binary compatibility is only confirmed between same minor releases. 305 - The Makefile now creates a symlink from the soname to the binary name during install. Binary compatibility is only confirmed between same minor releases.
306 306
307 - Added SMF mesh loader, loads meshes from 3D World Studio. Originally written by Joseph Ellis 307 - Added SMF mesh loader, loads meshes from 3D World Studio. Originally written by Joseph Ellis
308 308
309 - The loader selection process now consistently checks loader lists in reverse order, so new loaders added to Irrlicht override the internal ones. This applies when adding external mesh, image, scene and archive loaders, image writers, plus node, animator and GUI element factories. 309 - The loader selection process now consistently checks loader lists in reverse order, so new loaders added to Irrlicht override the internal ones. This applies when adding external mesh, image, scene and archive loaders, image writers, plus node, animator and GUI element factories.
310 310
311 - Added getters to retrieve mesh, scene and archive loaders. 311 - Added getters to retrieve mesh, scene and archive loaders.
312 312
313 - Added ISceneLoader interface and .irr loader. Users can now add their own scene loaders to the scene manager and use them by calling loadScene. 313 - Added ISceneLoader interface and .irr loader. Users can now add their own scene loaders to the scene manager and use them by calling loadScene.
314 314
315 - Renamed IGUIElement::bringToBack to sendToBack, like in Windows 315 - Renamed IGUIElement::bringToBack to sendToBack, like in Windows
316 316
317 - Send EGET_ELEMENT_CLOSED event when context menus should be closed (thx @ Mloren for reporting). 317 - Send EGET_ELEMENT_CLOSED event when context menus should be closed (thx @ Mloren for reporting).
318 318
319 - Added treeview to GUI editor, provided by Armen 319 - Added treeview to GUI editor, provided by Armen
320 320
321 - Added root type for GUI environment 321 - Added root type for GUI environment
322 322
323 - zip archive fixes: Fix directory tags in file list. Fix loading of stream zip files which have file sizes only in the central directory. 323 - zip archive fixes: Fix directory tags in file list. Fix loading of stream zip files which have file sizes only in the central directory.
324 324
325 - Fixed panel scrollbars in GUI editor, reported by Armen 325 - Fixed panel scrollbars in GUI editor, reported by Armen
326 326
327 - Fix b3d loading of files with mixed mesh/bone sections. 327 - Fix b3d loading of files with mixed mesh/bone sections.
328 328
329 - Fix particle emitters which used integer random numbers so far. The distributions of the particles should be much better (and the code also somewhat faster) now. 329 - Fix particle emitters which used integer random numbers so far. The distributions of the particles should be much better (and the code also somewhat faster) now.
330 330
331 - Add new random method frand: Returns a random number in the interval [0..1] and gives better distributions than using fmodf on the integer number. 331 - Add new random method frand: Returns a random number in the interval [0..1] and gives better distributions than using fmodf on the integer number.
332 332
333 - Add node parameter to saveScene and loadScene. saveScene saves the given node and all descendants to the file (if 0, the full scene is saved as before). loadScene loads all elements of the scene as childs of the given node. As before, 0 would load the file on the top level (scenemanager). 333 - Add node parameter to saveScene and loadScene. saveScene saves the given node and all descendants to the file (if 0, the full scene is saved as before). loadScene loads all elements of the scene as childs of the given node. As before, 0 would load the file on the top level (scenemanager).
334 334
335 - Add method to make a filename relative to a given directory. 335 - Add method to make a filename relative to a given directory.
336 336
337 - Fix setMesh to correctly update the joints cache. 337 - Fix setMesh to correctly update the joints cache.
338 338
339 - Fix setting transition time of skinned meshes back to 0. 339 - Fix setting transition time of skinned meshes back to 0.
340 340
341 - Add some getters to IGUIImage: getImage, getColor 341 - Add some getters to IGUIImage: getImage, getColor
342 342
343 - Fix OpenGL FBODepthTexture to create less overhead 343 - Fix OpenGL FBODepthTexture to create less overhead
344 344
345 - Fix MRT disabling under OpenGL 345 - Fix MRT disabling under OpenGL
346 346
347 - API change: Added write only lock mode for textures. The lock method has changed the signature and uses an enum parameter now instead of a bool. The default is still to lock for read/write (previously 'false'). The old 'true' value should be replaced by ETLM_READ_ONLY. 347 - API change: Added write only lock mode for textures. The lock method has changed the signature and uses an enum parameter now instead of a bool. The default is still to lock for read/write (previously 'false'). The old 'true' value should be replaced by ETLM_READ_ONLY.
348 348
349 - Speedup deleting of particles 349 - Speedup deleting of particles
350 350
351 - Add function IParticleSystemSceneNode::clearParticles 351 - Add function IParticleSystemSceneNode::clearParticles
352 352
353 - Fix RTT render states under OpenGL 353 - Fix RTT render states under OpenGL
354 354
355 - Fix AntiAliasing setup under Windows/OpenGL in case no AA is available 355 - Fix AntiAliasing setup under Windows/OpenGL in case no AA is available
356 356
357 - Fix transformation matrices when RTT used 357 - Fix transformation matrices when RTT used
358 358
359 - API change: getScreenCoordinatesFrom3DPosition has a new parameter, which needs to be set to true to get the original behavior. Now, the method returns coordinates which would fit as render coordinates of a currently enabled viewport. With the parameter set to true the result would fit only after the viewport is reset to full window rendering. 359 - API change: getScreenCoordinatesFrom3DPosition has a new parameter, which needs to be set to true to get the original behavior. Now, the method returns coordinates which would fit as render coordinates of a currently enabled viewport. With the parameter set to true the result would fit only after the viewport is reset to full window rendering.
360 360
361 - More checks for Stencilbuffer 361 - More checks for Stencilbuffer
362 362
363 - Improve render state resets 363 - Improve render state resets
364 364
365 - Fix MRT handling 365 - Fix MRT handling
366 366
367 - Fix file search 367 - Fix file search
368 368
369 - Add flag and method to disable clipping of the text to the gui element rectangle in GUI static text. 369 - Add flag and method to disable clipping of the text to the gui element rectangle in GUI static text.
370 370
371 - addShadowVolumeSceneNode now replaces an existing shadow. One should avoid to call this method multiple times without changing any parameter, as it is quite time consuming and cannot recognize the duplicate calls. 371 - addShadowVolumeSceneNode now replaces an existing shadow. One should avoid to call this method multiple times without changing any parameter, as it is quite time consuming and cannot recognize the duplicate calls.
372 372
373 - Add function IGUIEnvironment::removeFont (TODO: Does not remove the texture from cache so far) 373 - Add function IGUIEnvironment::removeFont (TODO: Does not remove the texture from cache so far)
374 374
375 - Fixed mem leak in mountfilesystem 375 - Fixed mem leak in mountfilesystem
376 376
377 - Update to libjpeg 8b, zlib 1.2.5, bzip2 1.0.6, libpng 1.4.4 and lzma from 9.20 SDK 377 - Update to libjpeg 8b, zlib 1.2.5, bzip2 1.0.6, libpng 1.4.4 and lzma from 9.20 SDK
378 378
379 - Functions in IMeshCache expecting IAnimatedMesh* parameters removed as similar functions with IMesh* can be used since a while. Fixes also problems when IAnimatedMesh* got upcasted to IMesh*. (thx @ Greenya for reporting) 379 - Functions in IMeshCache expecting IAnimatedMesh* parameters removed as similar functions with IMesh* can be used since a while. Fixes also problems when IAnimatedMesh* got upcasted to IMesh*. (thx @ Greenya for reporting)
380 380
381 - Fix blend states for MRTs 381 - Fix blend states for MRTs
382 382
383 - 64bit targets for MSVC added 383 - 64bit targets for MSVC added
384 384
385 - The following functions will now use a "ISceneNode *" instead of a "const ISceneNode *": 385 - The following functions will now use a "ISceneNode *" instead of a "const ISceneNode *":
386 ITriangleSelector::getSceneNodeForTriangle, ISceneNodeAnimatorCollisionResponse::getCollisionNode, ISceneCollisionManager::getCollisionPoint and ISceneCollisionManager::getCollisionResultPosition. 386 ITriangleSelector::getSceneNodeForTriangle, ISceneNodeAnimatorCollisionResponse::getCollisionNode, ISceneCollisionManager::getCollisionPoint and ISceneCollisionManager::getCollisionResultPosition.
387 As collision functions often are followed by changing node positions users where so far forced to using const_casts (found by Greenya). 387 As collision functions often are followed by changing node positions users where so far forced to using const_casts (found by Greenya).
388 388
389 - Add vector3d::getAs3Values (patch provided by slavik262) 389 - Add vector3d::getAs3Values (patch provided by slavik262)
390 390
391 - Add function to SViewFrustum to get corners of the near plane (patch provided by Matt Kline, aka slavik262) 391 - Add function to SViewFrustum to get corners of the near plane (patch provided by Matt Kline, aka slavik262)
392 392
393 - ParticleFadeOutAffector::setFadeOutTime can no longer be set to invalid values 393 - ParticleFadeOutAffector::setFadeOutTime can no longer be set to invalid values
394 394
395 - ParticleFadeOutAffector uses now throughout u32 for fadeOutTime (found by greenya) 395 - ParticleFadeOutAffector uses now throughout u32 for fadeOutTime (found by greenya)
396 396
397 - Add missing access function CParticleSystemSceneNode::getAffectors() (seen by B@z) 397 - Add missing access function CParticleSystemSceneNode::getAffectors() (seen by B@z)
398 398
399 - Add missing setters/getters for particle emitters (seen by B@z) 399 - Add missing setters/getters for particle emitters (seen by B@z)
400 400
401 - Compile-defines can now be disabled from Makefiles/Projectfiles instead of having to change IrrCompileConfig.h each time. 401 - Compile-defines can now be disabled from Makefiles/Projectfiles instead of having to change IrrCompileConfig.h each time.
402 402
403 - IGUITabControl::setActiveTab should only take IGUITab* and not IGUIElement* (thx to greenya for finding) 403 - IGUITabControl::setActiveTab should only take IGUITab* and not IGUIElement* (thx to greenya for finding)
404 404
405 - Add new skin-colors: EGDC_GRAY_WINDOW_SYMBOL, EGDC_EDITABLE, EGDC_GRAY_EDITABLE, EGDC_FOCUSED_EDITABLE 405 - Add new skin-colors: EGDC_GRAY_WINDOW_SYMBOL, EGDC_EDITABLE, EGDC_GRAY_EDITABLE, EGDC_FOCUSED_EDITABLE
406 406
407 - Disabled state is now extended to sub-elements 407 - Disabled state is now extended to sub-elements
408 408
409 - Make disabled state for several elements more visible 409 - Make disabled state for several elements more visible
410 410
411 - Bugfix: Icons in tabcontrol get now affected immediately by skin-changes 411 - Bugfix: Icons in tabcontrol get now affected immediately by skin-changes
412 412
413 - Proper cleanup if visual not created 413 - Proper cleanup if visual not created
414 414
415 - XML reader bugfix 415 - XML reader bugfix
416 416
417 - Disable mipmaps in 2d mode everywhere 417 - Disable mipmaps in 2d mode everywhere
418 418
419 - Add xml example written by Yoran Bosman. 419 - Add xml example written by Yoran Bosman.
420 420
421 - Fix cursor cleanup under Linux when using multiple devices 421 - Fix cursor cleanup under Linux when using multiple devices
422 422
423 - Fix collada parser 423 - Fix collada parser
424 424
425 - Fix MRT reset under D3D 425 - Fix MRT reset under D3D
426 426
427 - Add a generic attribute interface for querying video driver attributes which are not necessarily of type bool. This interface allows to check certain supported features, such as the number of user clip planes, supported lights and textures, MRTs, and other things. The interface might change in the future, but it's fully functional already. The supported attributes are listed in the API docs of the function: 427 - Add a generic attribute interface for querying video driver attributes which are not necessarily of type bool. This interface allows to check certain supported features, such as the number of user clip planes, supported lights and textures, MRTs, and other things. The interface might change in the future, but it's fully functional already. The supported attributes are listed in the API docs of the function:
428The following names can be queried for the given types: 428The following names can be queried for the given types:
429 * MaxTextures (int) The maximum number of simultaneous textures supported by the driver. This can be less than the supported number of textures of the driver. Use _IRR_MATERIAL_MAX_TEXTURES_ to adapt the number. 429 * MaxTextures (int) The maximum number of simultaneous textures supported by the driver. This can be less than the supported number of textures of the driver. Use _IRR_MATERIAL_MAX_TEXTURES_ to adapt the number.
430 * MaxSupportedTextures (int) The maximum number of simultaneous textures supported by the fixed function pipeline of the (hw) driver. The actual supported number of textures supported by the engine can be lower. 430 * MaxSupportedTextures (int) The maximum number of simultaneous textures supported by the fixed function pipeline of the (hw) driver. The actual supported number of textures supported by the engine can be lower.
431 * MaxLights (int) Number of hardware lights supported in the fixed function pipieline of the driver, typically 6-8. Use light manager or deferred shading for more. 431 * MaxLights (int) Number of hardware lights supported in the fixed function pipieline of the driver, typically 6-8. Use light manager or deferred shading for more.
432 * MaxAnisotropy (int) Number of anisotropy levels supported for filtering. At least 1, max is typically at 16 or 32. 432 * MaxAnisotropy (int) Number of anisotropy levels supported for filtering. At least 1, max is typically at 16 or 32.
433 * MaxUserClipPlanes (int) Number of additional clip planes, which can be set by the user via dedicated driver methods. 433 * MaxUserClipPlanes (int) Number of additional clip planes, which can be set by the user via dedicated driver methods.
434 * MaxAuxBuffers (int) Special render buffers, which are currently not really usable inside Irrlicht. Only supported by OpenGL 434 * MaxAuxBuffers (int) Special render buffers, which are currently not really usable inside Irrlicht. Only supported by OpenGL
435 * MaxMultipleRenderTargets (int) Number of render targets which can be bound simultaneously. Rendering to MRTs is done via shaders. 435 * MaxMultipleRenderTargets (int) Number of render targets which can be bound simultaneously. Rendering to MRTs is done via shaders.
436 * MaxIndices (int) Number of indices which can be used in one render call (i.e. one mesh buffer). 436 * MaxIndices (int) Number of indices which can be used in one render call (i.e. one mesh buffer).
437 * MaxTextureSize (int) Dimension that a texture may have, both in width and height. 437 * MaxTextureSize (int) Dimension that a texture may have, both in width and height.
438 * MaxGeometryVerticesOut (int) Number of vertices the geometry shader can output in one pass. Only OpenGL so far. 438 * MaxGeometryVerticesOut (int) Number of vertices the geometry shader can output in one pass. Only OpenGL so far.
439 * MaxTextureLODBias (float) Maximum value for LOD bias. Is usually at around 16, but can be lower on some systems. 439 * MaxTextureLODBias (float) Maximum value for LOD bias. Is usually at around 16, but can be lower on some systems.
440 * Version (int) Version of the driver. Should be Major*100+Minor 440 * Version (int) Version of the driver. Should be Major*100+Minor
441 * ShaderLanguageVersion (int) Version of the high level shader language. Should be Major*100+Minor. 441 * ShaderLanguageVersion (int) Version of the high level shader language. Should be Major*100+Minor.
442 442
443 - Fix getRotationDegrees 443 - Fix getRotationDegrees
444 444
445 - Add creation parameter which allows to disable highres timers on Windows upon device creation. 445 - Add creation parameter which allows to disable highres timers on Windows upon device creation.
446 446
447 - Several transparency setup bugs fixed. Now, alpha_vertex_blend uses proper alpha blending instead of a mixed add/alpha blending. 447 - Several transparency setup bugs fixed. Now, alpha_vertex_blend uses proper alpha blending instead of a mixed add/alpha blending.
448 448
449 - Added a method to get real time and date in a human readable struct 449 - Added a method to get real time and date in a human readable struct
450 450
451 - Fix add folder archives method to support files without trailing slashes. 451 - Fix add folder archives method to support files without trailing slashes.
452 452
453 - fix transparent_reflection_2_layers 453 - fix transparent_reflection_2_layers
454 454
455 - Add support for MSVC 2010 455 - Add support for MSVC 2010
456 456
457 - Fix "unsupported format" warning on RTT usage 457 - Fix "unsupported format" warning on RTT usage
458 458
459 - Add IGUIElement::bringToBack (patch written by DtD, although I'm to blame for the function-name) 459 - Add IGUIElement::bringToBack (patch written by DtD, although I'm to blame for the function-name)
460 460
461 - BurningVideo 461 - BurningVideo
462 - add Normalmap Rendering (one light only), pushed Burningvideo to 0.46 462 - add Normalmap Rendering (one light only), pushed Burningvideo to 0.46
463 - add Stencil Shadow Rendering (one color only and 32 bit only), 463 - add Stencil Shadow Rendering (one color only and 32 bit only),
464 pushed Burningvideo to 0.47 464 pushed Burningvideo to 0.47
465 - internal vertexformat changed 465 - internal vertexformat changed
466 - changed fixpoint from 9 to 10 bit fract resolution 466 - changed fixpoint from 9 to 10 bit fract resolution
467 - renamed createBurningVideoDriver to createBurningVideoDriver and uses SIrrlichtCreationParameters like opengl 467 - renamed createBurningVideoDriver to createBurningVideoDriver and uses SIrrlichtCreationParameters like opengl
468 - internal interfaces for the trianglerenders unified. 468 - internal interfaces for the trianglerenders unified.
469 469
470 - Example 11, changed the light billboards to use the light color. 470 - Example 11, changed the light billboards to use the light color.
471 allow to disable the bump/parallax on the earth like in the room ( with transparency ) 471 allow to disable the bump/parallax on the earth like in the room ( with transparency )
472 472
473 - added DDS Image files, DXT2, DXT3, DXT4, DXT5, based on code from nvidia and Randy Reddig 473 - added DDS Image files, DXT2, DXT3, DXT4, DXT5, based on code from nvidia and Randy Reddig
474 474
475 - added Halflife 1 Model Loader (based on code by Fabio Concas) 475 - added Halflife 1 Model Loader (based on code by Fabio Concas)
476 Halflife 1.1.0.8, Counter-Strike 1.6 working 476 Halflife 1.1.0.8, Counter-Strike 1.6 working
477 -> Load all Textures ( can even optimize it to texture atlas ), all bone animation, all submodels. 477 -> Load all Textures ( can even optimize it to texture atlas ), all bone animation, all submodels.
478 -> But to make use of the values (named animation, mouth animation) 478 -> But to make use of the values (named animation, mouth animation)
479 the Interface for IAnimatedMeshSceneNode has to be redone. 479 the Interface for IAnimatedMeshSceneNode has to be redone.
480 480
481 TODO: 481 TODO:
482 ->can handle float frames numbers, the interface for getMesh should be reworked 482 ->can handle float frames numbers, the interface for getMesh should be reworked
483 This is my idea of a new getMesh interface for IAnimatedMesh 483 This is my idea of a new getMesh interface for IAnimatedMesh
484 484
485 //! Returns the IMesh interface for a frame. 485 //! Returns the IMesh interface for a frame.
486 /** \param frameA: Frame number as zero based index. 486 /** \param frameA: Frame number as zero based index.
487 The Blend Factor is in the fractional part of frameA 487 The Blend Factor is in the fractional part of frameA
488 The Mesh will be calculated as 488 The Mesh will be calculated as
489 frame = integer(frameA) * (1-fractional(frameA )) + frameB * fractional(frameA) 489 frame = integer(frameA) * (1-fractional(frameA )) + frameB * fractional(frameA)
490 FrameNr KeyFrameA KeyFrameB 490 FrameNr KeyFrameA KeyFrameB
491 40.0 1 0 491 40.0 1 0
492 40.1 0.9 0.1 492 40.1 0.9 0.1
493 40.5 0.5 0.5 493 40.5 0.5 0.5
494 40.9 0.1 0.9 494 40.9 0.1 0.9
495 41.0 0 1 495 41.0 0 1
496 \param frameB: Frame number as zero based index. The other KeyFrame which is blended with FrameA. 496 \param frameB: Frame number as zero based index. The other KeyFrame which is blended with FrameA.
497 \param userParam: for Example Level of detail, or something else 497 \param userParam: for Example Level of detail, or something else
498 */ 498 */
499 virtual IMesh* getMesh(f32 frameA, s32 frameB = 0,s32 param = 0) = 0; 499 virtual IMesh* getMesh(f32 frameA, s32 frameB = 0,s32 param = 0) = 0;
500 500
501 For now i used the (unused, always 255) detail level parameter and set a blend percentage as 501 For now i used the (unused, always 255) detail level parameter and set a blend percentage as
502 s32 frameNr = (s32) getFrameNr(); 502 s32 frameNr = (s32) getFrameNr();
503 s32 frameBlend = (s32) (core::fract ( getFrameNr() ) * 1000.f); 503 s32 frameBlend = (s32) (core::fract ( getFrameNr() ) * 1000.f);
504 return Mesh->getMesh(frameNr, frameBlend, StartFrame, EndFrame); 504 return Mesh->getMesh(frameNr, frameBlend, StartFrame, EndFrame);
505 505
506 So no interface is affected. 506 So no interface is affected.
507 507
508 -> TODO: Quaternion Rotation is done private hand made and should be done with irrlicht quaternions 508 -> TODO: Quaternion Rotation is done private hand made and should be done with irrlicht quaternions
509 509
510 - Included 357kb Yodan.mdl mesh and copyright info file from Doug Hillyer 510 - Included 357kb Yodan.mdl mesh and copyright info file from Doug Hillyer
511 to the media directory, used in example 7. collision as 4th model. 511 to the media directory, used in example 7. collision as 4th model.
512 512
513 - added Halflife 1 Texture Loader 513 - added Halflife 1 Texture Loader
514 Valve uses WAL archive types like quake2. textures are inside model files 514 Valve uses WAL archive types like quake2. textures are inside model files
515 I reworked the existing ImageloaderWAL and added named Halflife textures to wal2 ( they have no extension ) 515 I reworked the existing ImageloaderWAL and added named Halflife textures to wal2 ( they have no extension )
516 and an LMP (palette/texture) loader into the same file (all using 32bit now) 516 and an LMP (palette/texture) loader into the same file (all using 32bit now)
517 517
518 - added WAD Archive Loader (Quake2 (WAL2) and Halflife (WAL3) are supported) 518 - added WAD Archive Loader (Quake2 (WAL2) and Halflife (WAL3) are supported)
519 519
520 - CFileList 520 - CFileList
521 added Offset Parameter to SFileListEntry and removed the private array from the archive loaders. 521 added Offset Parameter to SFileListEntry and removed the private array from the archive loaders.
522 CFileList::addItem now uses automatic incremental id if id = 0 522 CFileList::addItem now uses automatic incremental id if id = 0
523 523
524 - added void splitFilename, splits a path into components 524 - added void splitFilename, splits a path into components
525 525
526 - added parameter make_lower to substring ( copy just lower case ) 526 - added parameter make_lower to substring ( copy just lower case )
527 string<T> subString(u32 begin, s32 length, bool make_lower = false ) const 527 string<T> subString(u32 begin, s32 length, bool make_lower = false ) const
528 528
529 - ColorConverter added 529 - ColorConverter added
530 //! converts a 8 bit palettized or non palettized image (A8) into R8G8B8 530 //! converts a 8 bit palettized or non palettized image (A8) into R8G8B8
531 static void convert8BitTo24Bit(const u8* in, s16* out, s32 width, s32 height, const s32* palette, s32 linepad = 0, bool flip=false); 531 static void convert8BitTo24Bit(const u8* in, s16* out, s32 width, s32 height, const s32* palette, s32 linepad = 0, bool flip=false);
532 //! converts a 8 bit palettized or non palettized image (A8) into A8R8G8B8 532 //! converts a 8 bit palettized or non palettized image (A8) into A8R8G8B8
533 static void convert8BitTo32Bit(const u8* in, u8* out, s32 width, s32 height, const u8* palette, s32 linepad = 0, bool flip=false); 533 static void convert8BitTo32Bit(const u8* in, u8* out, s32 width, s32 height, const u8* palette, s32 linepad = 0, bool flip=false);
534 534
535 - In IGUITreeView "clearChilds" and "hasChilds" deprecated for "clearChildren" and "hasChildren" (thx @Greenya for noticing) 535 - In IGUITreeView "clearChilds" and "hasChilds" deprecated for "clearChildren" and "hasChildren" (thx @Greenya for noticing)
536 536
537 - add CGUIEditBox::getOverrideColor and CGUIEditBox::isOverrideColorEnabled 537 - add CGUIEditBox::getOverrideColor and CGUIEditBox::isOverrideColorEnabled
538 538
539 - add dimension2d::operator- 539 - add dimension2d::operator-
540 540
541 - Add logging level ELL_DEBUG 541 - Add logging level ELL_DEBUG
542 542
543 - Add parameter DisplayAdapter to creation params to allow selecting the card when more than one card is in the system. 543 - Add parameter DisplayAdapter to creation params to allow selecting the card when more than one card is in the system.
544 544
545 - Added support for custom cursors 545 - Added support for custom cursors
546 546
547 - WM_SYSCOMMAND - SC_KEYMENU message is now ignored (F10 and ALT in Win32 windowed mode) 547 - WM_SYSCOMMAND - SC_KEYMENU message is now ignored (F10 and ALT in Win32 windowed mode)
548 548
549 - Avoid argument lookup ambiguity in swap when used in combination with stl. Using same trick as boost now and use 2 different template parameters in it. 549 - Avoid argument lookup ambiguity in swap when used in combination with stl. Using same trick as boost now and use 2 different template parameters in it.
550 550
551 - Add UseMipMap flag in material 551 - Add UseMipMap flag in material
552 552
553 - Add occlusion query support. Based on code by Nadro 553 - Add occlusion query support. Based on code by Nadro
554 554
555 - Add support for vertex_array_bgra extension in OpenGL driver. This will speed up OpenGL rendering quite a lot as it skips the silly color conversion thing we have to do otherwise. 555 - Add support for vertex_array_bgra extension in OpenGL driver. This will speed up OpenGL rendering quite a lot as it skips the silly color conversion thing we have to do otherwise.
556 556
557 - Replace raw xml char implementation with template struct in order to decouple the type from POD types. May also help for 64bit problems or changes needed there. 557 - Replace raw xml char implementation with template struct in order to decouple the type from POD types. May also help for 64bit problems or changes needed there.
558 558
559 - Fixed bug causing memory access violation in string::replace found and patched by Nalin. 559 - Fixed bug causing memory access violation in string::replace found and patched by Nalin.
560 560
561 - Fix windows32 class unregister 561 - Fix windows32 class unregister
562 562
563 - Add parameter to line2d::intersectWith to allow getting intersections outside the segments (thx Yoran). 563 - Add parameter to line2d::intersectWith to allow getting intersections outside the segments (thx Yoran).
564 564
565 - External windows are not destroyed anymore 565 - External windows are not destroyed anymore
566 566
567 - clamp values in getRotationDegrees to avoid nan values 567 - clamp values in getRotationDegrees to avoid nan values
568 568
569 - texture size in terrain mesh fixed 569 - texture size in terrain mesh fixed
570 570
571 - ms3d fixes 571 - ms3d fixes
572 572
573 - Add new matrix methods for infinite projection matrix 573 - Add new matrix methods for infinite projection matrix
574 574
575 - Support new OpenGL 2.x shader creation 575 - Support new OpenGL 2.x shader creation
576 576
577----------------------------- 577-----------------------------
578Changes in 1.7.4 578Changes in 1.7.4
579 579
580 - Change include order to get example 21 compiling on MinGW. 580 - Change include order to get example 21 compiling on MinGW.
581 581
582 - Irrlicht.dll has correct name now again (was named libIrrlicht.dll in c::b). This fixes bugreport 3518765 reported by tetho. 582 - Irrlicht.dll has correct name now again (was named libIrrlicht.dll in c::b). This fixes bugreport 3518765 reported by tetho.
583 583
584 - Fix linker path in example 16 for C::B project file (linker path was in include path section). 584 - Fix linker path in example 16 for C::B project file (linker path was in include path section).
585 585
586 - Link with opengl32 and gdi32 in Example 14 in C::B. 586 - Link with opengl32 and gdi32 in Example 14 in C::B.
587 587
588 - Remove --no-export-all-symbols which got recently added to the windows build as that flag is not known by gcc on Windows. 588 - Remove --no-export-all-symbols which got recently added to the windows build as that flag is not known by gcc on Windows.
589 589
590 - Fix bug in example 23 where Width and Height got mixed up. Thanks @Lazier for reporting. 590 - Fix bug in example 23 where Width and Height got mixed up. Thanks @Lazier for reporting.
591 591
592 - Fix for R5G6B5 converter submitted by XMight 592 - Fix for R5G6B5 converter submitted by XMight
593 593
594 - Fix conversion warning under mingw, found by Randajad 594 - Fix conversion warning under mingw, found by Randajad
595 595
596 - Set EMF_NORMALIZE_NORMALS correct for syndey model in Demo (thanks @ Midnight for reporting). 596 - Set EMF_NORMALIZE_NORMALS correct for syndey model in Demo (thanks @ Midnight for reporting).
597 597
598 - SceneNodeAnimatorFlyCircle fixes serialization of RadiusEllipsoid (was writing Radius). Thx @ wing64 for reporting. 598 - SceneNodeAnimatorFlyCircle fixes serialization of RadiusEllipsoid (was writing Radius). Thx @ wing64 for reporting.
599 599
600 - Yield on Linux now uses nanosleep with 1ns as 0 isn't guaranteed to yield (thx @ hendu for finding + fix) 600 - Yield on Linux now uses nanosleep with 1ns as 0 isn't guaranteed to yield (thx @ hendu for finding + fix)
601 601
602----------------------------- 602-----------------------------
603Changes in 1.7.3 (20.02.2012) 603Changes in 1.7.3 (20.02.2012)
604 604
605 - SceneNodeAnimatorFlyCircle fixes serialization of RadiusEllipsoid (was writing Radius). Thx @ wing64 for reporting. 605 - SceneNodeAnimatorFlyCircle fixes serialization of RadiusEllipsoid (was writing Radius). Thx @ wing64 for reporting.
606 606
607 - Yield on Linux now uses nanosleep with 1ns as 0 isn't guaranteed to yield (thx @ hendu for finding + fix) 607 - Yield on Linux now uses nanosleep with 1ns as 0 isn't guaranteed to yield (thx @ hendu for finding + fix)
608 608
609 - GUIEditor attributes have now scrollbar to be editable 609 - GUIEditor attributes have now scrollbar to be editable
610 610
611 - Remove warning when compiling line2d::intersectWith with other types than f32. 611 - Remove warning when compiling line2d::intersectWith with other types than f32.
612 612
613 - Document that triangle3d::isPointInside should not be used with int's. 613 - Document that triangle3d::isPointInside should not be used with int's.
614 614
615 - triangle3d::isPointInsideFast handles 'on-border' cases now consistently. 615 - triangle3d::isPointInsideFast handles 'on-border' cases now consistently.
616 616
617 - Some more editbox fixes 617 - Some more editbox fixes
618 618
619 - Harden Linux joystick usage, in case the driver returns illegal values 619 - Harden Linux joystick usage, in case the driver returns illegal values
620 620
621 - Bugfix: vector2d.normalize() and vector3d.normalize() had returned wrong results with very short vectors since Irrlicht 1.5. Thanks to Willem Swart for Bugreport + testcase. 621 - Bugfix: vector2d.normalize() and vector3d.normalize() had returned wrong results with very short vectors since Irrlicht 1.5. Thanks to Willem Swart for Bugreport + testcase.
622 622
623 - Unknown keymappings now use the X11 keycode instead of 0 to make such keys at least usable in games. 623 - Unknown keymappings now use the X11 keycode instead of 0 to make such keys at least usable in games.
624 624
625 - KeyMapping for KeyInput.Key on X11 ignores states like shift&ctrl now like on Windows. 625 - KeyMapping for KeyInput.Key on X11 ignores states like shift&ctrl now like on Windows.
626 626
627 - Additional keymappings for X11 (tested with german and us keyboards which seem to work now in all cases). 627 - Additional keymappings for X11 (tested with german and us keyboards which seem to work now in all cases).
628 628
629 - Fix crash in multiline editbox when pasting several lines into it on Windows (found by Reiko) 629 - Fix crash in multiline editbox when pasting several lines into it on Windows (found by Reiko)
630 630
631 - example 09.Meshviewer no longer catches keys while a modal dialog is open 631 - example 09.Meshviewer no longer catches keys while a modal dialog is open
632 632
633 - Fix SSharedMeshBuffer 633 - Fix SSharedMeshBuffer
634 634
635 - Fix right handed ortho matrix 635 - Fix right handed ortho matrix
636 636
637 - editbox no longer displays cursor when disabled 637 - editbox no longer displays cursor when disabled
638 638
639 - editbox autoscrolling now at least works good enough to actually show the text which the user is typing in. 639 - editbox autoscrolling now at least works good enough to actually show the text which the user is typing in.
640 640
641 - editbox no longer moves text into next line when it fails wrapping creating senseless empty lines which mess up scrolling. 641 - editbox no longer moves text into next line when it fails wrapping creating senseless empty lines which mess up scrolling.
642 642
643 - Fix crash in editbox when scrolling up with empty first lines caused by textwrapping. 643 - Fix crash in editbox when scrolling up with empty first lines caused by textwrapping.
644 644
645 - Fix endianess conversions 645 - Fix endianess conversions
646 646
647 - Changes to isPointInside 647 - Changes to isPointInside
648 648
649 - Fix focus problem when removing an unfocused modal dialog reported by Reiko here: http://irrlicht.sourceforge.net/forum/viewtopic.php?f=7&t=44358 649 - Fix focus problem when removing an unfocused modal dialog reported by Reiko here: http://irrlicht.sourceforge.net/forum/viewtopic.php?f=7&t=44358
650 650
651 - Fix md2 normals problem again 651 - Fix md2 normals problem again
652 652
653 - Add integer template specialization for vector3d::getSphericalCoordinateAngles which rounds angles to nearest integer now. 653 - Add integer template specialization for vector3d::getSphericalCoordinateAngles which rounds angles to nearest integer now.
654 654
655 - Recalculate FrameRect and ScrollPos in CGUIEditBox when AbsoluteRect gets changed (thx @ serengeor for report + testcase) 655 - Recalculate FrameRect and ScrollPos in CGUIEditBox when AbsoluteRect gets changed (thx @ serengeor for report + testcase)
656 656
657 - Fix crash in editbox 657 - Fix crash in editbox
658 658
659 - Fix 'k' in bigfont.png (thx @ Scrappi for reporting) 659 - Fix 'k' in bigfont.png (thx @ Scrappi for reporting)
660 660
661 - fix serialization for CBillboardSceneNode, it had missed 2 color (thx for finding + patch from pc0de) 661 - fix serialization for CBillboardSceneNode, it had missed 2 color (thx for finding + patch from pc0de)
662 662
663 - EMIE_MOUSE_WHEEL messages now handled correctly in several gui-element when wheel isn't just 1.0 or -1.0 (thx @ Reiko for reporting) 663 - EMIE_MOUSE_WHEEL messages now handled correctly in several gui-element when wheel isn't just 1.0 or -1.0 (thx @ Reiko for reporting)
664 664
665 - Fix problems in Textwrapping in CGUIStaticText. Did use wrong size and did ignore last word of the text (thx @ Reiko for bugreport) 665 - Fix problems in Textwrapping in CGUIStaticText. Did use wrong size and did ignore last word of the text (thx @ Reiko for bugreport)
666 666
667 - Fix crash in collada (.dae) loading 667 - Fix crash in collada (.dae) loading
668 668
669 - Fix bug handling in case RTT is not properly created 669 - Fix bug handling in case RTT is not properly created
670 670
671 - Fix SColorf interpolation 671 - Fix SColorf interpolation
672 672
673 - Fix memory-leaks in example 22 MaterialViewer 673 - Fix memory-leaks in example 22 MaterialViewer
674 674
675 - Fix array::erase which did destroy objects more than once when used with a range (thx @ RedDragCZ for reporting + testcase). 675 - Fix array::erase which did destroy objects more than once when used with a range (thx @ RedDragCZ for reporting + testcase).
676 676
677 - Copy now all membervariables for CCameraSceneNode when cloning. 677 - Copy now all membervariables for CCameraSceneNode when cloning.
678 678
679 - ICameraSceneNode::IsOrthogonal is correctly serialized and cloned now. 679 - ICameraSceneNode::IsOrthogonal is correctly serialized and cloned now.
680 680
681 - CGUIScrollBar passes unused mousemove-events now to parent element. Fixes focus-bug in ComboBox reported by REDDemon here: http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=43474&highlight= 681 - CGUIScrollBar passes unused mousemove-events now to parent element. Fixes focus-bug in ComboBox reported by REDDemon here: http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=43474&highlight=
682 682
683 - Fix getAngle and getAngleWith 683 - Fix getAngle and getAngleWith
684 684
685 - Fix clipping in CGUITabControl 685 - Fix clipping in CGUITabControl
686 686
687 - Fix clipping in CGUITable, reported by ceyron 687 - Fix clipping in CGUITable, reported by ceyron
688 688
689 - Skip bone weights and additional information in ms3d file if no joint was defined before. 689 - Skip bone weights and additional information in ms3d file if no joint was defined before.
690 690
691 - Fix mem leak in CImage, found by mloren. 691 - Fix mem leak in CImage, found by mloren.
692 692
693 - Fix tga writing, reported by xirtamatrix 693 - Fix tga writing, reported by xirtamatrix
694 694
695 - Tab-positions care now about the borders correctly 695 - Tab-positions care now about the borders correctly
696 696
697 - TabControl now respositions it's tabs when setTabVerticalAlignment is changed (thx @ ceyron for reporting+testcase) 697 - TabControl now respositions it's tabs when setTabVerticalAlignment is changed (thx @ ceyron for reporting+testcase)
698 698
699 - CGUIModalScreen now no longer takes focus itself, but tries to give it first child when possible to fix modal windows losing focus all the time 699 - CGUIModalScreen now no longer takes focus itself, but tries to give it first child when possible to fix modal windows losing focus all the time
700 700
701 - Modal screens no longer blinks when gui-elements call removeFocus on themself (thx @ yaten for reporting+testcase) 701 - Modal screens no longer blinks when gui-elements call removeFocus on themself (thx @ yaten for reporting+testcase)
702 702
703 - Fix crash in multiline-editbox when selecting with mouse (thx @ ceyron for reporting and testcase) 703 - Fix crash in multiline-editbox when selecting with mouse (thx @ ceyron for reporting and testcase)
704 704
705 - Fix render context creation for OpenGL under Windows. 705 - Fix render context creation for OpenGL under Windows.
706 706
707 - Fix the reset problem of d3d9 driver in combination with hardware buffers. 707 - Fix the reset problem of d3d9 driver in combination with hardware buffers.
708 708
709 - Fix .x loader in case of unused vertices. 709 - Fix .x loader in case of unused vertices.
710 710
711 - Avoid empty line in texts with very large words. Text wrapping would introduce an empty line in earlier versions. 711 - Avoid empty line in texts with very large words. Text wrapping would introduce an empty line in earlier versions.
712 712
713 - Add a new attribute which assigns hw mapping hint to the whole Mesh. 713 - Add a new attribute which assigns hw mapping hint to the whole Mesh.
714 714
715 - Allow creation of water scene node without mesh. 715 - Allow creation of water scene node without mesh.
716 716
717 - Fix regeneration of skydome. 717 - Fix regeneration of skydome.
718 718
719 - Fix scene node type and factory support for volume light 719 - Fix scene node type and factory support for volume light
720 720
721 - Q3 maps no longer crash when faces try accessing lightmaps which are not mentioned to be loaded in the file. 721 - Q3 maps no longer crash when faces try accessing lightmaps which are not mentioned to be loaded in the file.
722 722
723 - Fix crash on null-readfile in texture loading 723 - Fix crash on null-readfile in texture loading
724 724
725 - Get particles saved before 1.7.2 (for example in irrEdit) working again (thx to smashly for problem reporting) 725 - Get particles saved before 1.7.2 (for example in irrEdit) working again (thx to smashly for problem reporting)
726 726
727 - Fix IGUIScrollBar setMax and setMin which had been restricted wrongly (reported by REDDemon) 727 - Fix IGUIScrollBar setMax and setMin which had been restricted wrongly (reported by REDDemon)
728 728
729 - Fix CNullDriver::createImage - Creating the image from a texture-rectangle which doesn't start at 0,0 works now again (thx @ ceyron for bugreport+testcase) 729 - Fix CNullDriver::createImage - Creating the image from a texture-rectangle which doesn't start at 0,0 works now again (thx @ ceyron for bugreport+testcase)
730 730
731 - Menu no longer sets highlight state when clicking disabled menu-item (reported by Mloren) 731 - Menu no longer sets highlight state when clicking disabled menu-item (reported by Mloren)
732 732
733 - Treeview can now be disabled 733 - Treeview can now be disabled
734 734
735----------------------------- 735-----------------------------
736Changes in 1.7.2 (15.11.2010) 736Changes in 1.7.2 (15.11.2010)
737 737
738 - Fix in d3d9 driver, which caused a crash when device creation failed. Bug found and fixed by Kostya 738 - Fix in d3d9 driver, which caused a crash when device creation failed. Bug found and fixed by Kostya
739 739
740 - Fix a wrong access to Value instead of ValueW. Found and fixed by vroad. 740 - Fix a wrong access to Value instead of ValueW. Found and fixed by vroad.
741 741
742 - Fix line loop rendering in d3d drivers. Fix submitted by tonic. 742 - Fix line loop rendering in d3d drivers. Fix submitted by tonic.
743 743
744 - Fix tar recognition in tar reader. 744 - Fix tar recognition in tar reader.
745 745
746 - Fix blend mode setup in OpenGL driver, when using the material2d override, as pointed out by Auria 746 - Fix blend mode setup in OpenGL driver, when using the material2d override, as pointed out by Auria
747 747
748 - Avoid crash due to tcoords2 handling. Might need some more fixing to work correctly. 748 - Avoid crash due to tcoords2 handling. Might need some more fixing to work correctly.
749 749
750 - Fix 2d line intersections. Has had problems with consecutive, but non-overlapping line segments and with overlapping line segments. 750 - Fix 2d line intersections. Has had problems with consecutive, but non-overlapping line segments and with overlapping line segments.
751 751
752 - Fix image creation from texture, found by dataslayer 752 - Fix image creation from texture, found by dataslayer
753 753
754 - Fix crashes when taking Screenhots for DirectX in Windowed mode (thx to agamemnus for reporting) 754 - Fix crashes when taking Screenhots for DirectX in Windowed mode (thx to agamemnus for reporting)
755 755
756 - StaticText does now serialize the background color 756 - StaticText does now serialize the background color
757 757
758 - Fix gui-elements which didn't care when skin-colors changed. That made it impossible to make the gui slowly transparent (thx to PI for reporting). 758 - Fix gui-elements which didn't care when skin-colors changed. That made it impossible to make the gui slowly transparent (thx to PI for reporting).
759 Note that it couldn't be completely fixed for the SpinBox without breaking the interface, so for that element you have to enforce this by calling for example element->setValue(element->getValue()) once. 759 Note that it couldn't be completely fixed for the SpinBox without breaking the interface, so for that element you have to enforce this by calling for example element->setValue(element->getValue()) once.
760 760
761 - Fix CXMLReaderImpl::getAttributeValueAsInt which returned wrong values with large integers (thx to squisher for finding) 761 - Fix CXMLReaderImpl::getAttributeValueAsInt which returned wrong values with large integers (thx to squisher for finding)
762 762
763 - Fix compile problem in swap when using irrlicht in combination with stl (backport from trunk r3281) 763 - Fix compile problem in swap when using irrlicht in combination with stl (backport from trunk r3281)
764 764
765 - Add EGET_TREEVIEW_NODE_COLLAPSE and deprecate EGET_TREEVIEW_NODE_COLLAPS (found by greenya) 765 - Add EGET_TREEVIEW_NODE_COLLAPSE and deprecate EGET_TREEVIEW_NODE_COLLAPS (found by greenya)
766 766
767 - Fix serialization in CParticleSystemSceneNode (found by B@z) 767 - Fix serialization in CParticleSystemSceneNode (found by B@z)
768 768
769 - Prevent crash in BillboardTextSceneNode when a custom font is used. Found and fixed by Nalin (bugtracker id: 3020487) 769 - Prevent crash in BillboardTextSceneNode when a custom font is used. Found and fixed by Nalin (bugtracker id: 3020487)
770 770
771 - Fix problem in animation system that currentFrame got messed up after long pauses (especially when not starting at frame 0). 771 - Fix problem in animation system that currentFrame got messed up after long pauses (especially when not starting at frame 0).
772 See forum thread (http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?p=210537#210537) and bug id 2898876. 772 See forum thread (http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?p=210537#210537) and bug id 2898876.
773 Also remove BeginFrameTime in CAnimatedMeshSceneNode as it hasn't been used anymore since some time. 773 Also remove BeginFrameTime in CAnimatedMeshSceneNode as it hasn't been used anymore since some time.
774 774
775 - Add framerate and current frame information for animations in example 09 and do some minor cleanup. 775 - Add framerate and current frame information for animations in example 09 and do some minor cleanup.
776 776
777 - Added another test for xml-reader. 777 - Added another test for xml-reader.
778 778
779 - Fix serialization in several particle emitters and affectors (thx to Ion Dune for reporting). 779 - Fix serialization in several particle emitters and affectors (thx to Ion Dune for reporting).
780 780
781 - Fix compile-error on VS for vector2d::getAngleTrig when used with integers. (thx to greenya for reporting) 781 - Fix compile-error on VS for vector2d::getAngleTrig when used with integers. (thx to greenya for reporting)
782 782
783 - Fix bug in dimension2d::getInterpolated that caused wrong results when used with integers as template parameter. (thx to Greenya for noticing a warning which made me look over this code). 783 - Fix bug in dimension2d::getInterpolated that caused wrong results when used with integers as template parameter. (thx to Greenya for noticing a warning which made me look over this code).
784 784
785 - Remove 2 minor memory leaks in meshloaders (found by tool cppcheck-1.43) 785 - Remove 2 minor memory leaks in meshloaders (found by tool cppcheck-1.43)
786 786
787 - reduce file dependencies for IGUIEventReceiver.h (thx ngc92) 787 - reduce file dependencies for IGUIEventReceiver.h (thx ngc92)
788 788
789 - Initialize GUIEvent.Element in several places (found by greenya) 789 - Initialize GUIEvent.Element in several places (found by greenya)
790 790
791 - Add EGDS_MESSAGE_BOX_MAX_TEXT_WIDTH and deprecated EGDS_MESSAGE_BOX_MAX_TEST_WIDTH (thx to greenya for reporting). 791 - Add EGDS_MESSAGE_BOX_MAX_TEXT_WIDTH and deprecated EGDS_MESSAGE_BOX_MAX_TEST_WIDTH (thx to greenya for reporting).
792 792
793 - Fix colors in irr files. 793 - Fix colors in irr files.
794 794
795 - Fix several places where "used" in core::string was used wrongly preventing some memory corruption 795 - Fix several places where "used" in core::string was used wrongly preventing some memory corruption
796 796
797 - Remove additional slash in pathnames in X-Loader 797 - Remove additional slash in pathnames in X-Loader
798 798
799 - Fix crash in CGUIListBox when environment was cleared on events 799 - Fix crash in CGUIListBox when environment was cleared on events
800 800
801 - Bugfix: Clear up depth-textures which could not be attached in OpenGL to prevent crashes. 801 - Bugfix: Clear up depth-textures which could not be attached in OpenGL to prevent crashes.
802 802
803 - Fix arrowMesh boundingbox. 803 - Fix arrowMesh boundingbox.
804 804
805 - Fix rounding problem in getInterpolated in the color classes 805 - Fix rounding problem in getInterpolated in the color classes
806 806
807 - Scrollbar in GUIListbox now uses default id -1 instead of 0 807 - Scrollbar in GUIListbox now uses default id -1 instead of 0
808 808
809 - Fix octree clipping issues. 809 - Fix octree clipping issues.
810 810
811 - Fix obj loader. 811 - Fix obj loader.
812 812
813 - clone function fixes. 813 - clone function fixes.
814 814
815 - Fix tooltips. 815 - Fix tooltips.
816 816
817 - Fix Ogre parser. 817 - Fix Ogre parser.
818 818
819----------------------------- 819-----------------------------
820Changes in 1.7.1 (17.02.2010) 820Changes in 1.7.1 (17.02.2010)
821 821
822 - Fix octree with frustum+parent checks enabled (didn't clip at all before). Now using plane-checks instead of edge-checks for frustum-box intersection. 822 - Fix octree with frustum+parent checks enabled (didn't clip at all before). Now using plane-checks instead of edge-checks for frustum-box intersection.
823 823
824 - Prevent that X11 selects larger resolutions in fullscreen even when perfect fits are available. 824 - Prevent that X11 selects larger resolutions in fullscreen even when perfect fits are available.
825 825
826 - Ignore setResizable also on X11 when we're fullscreen to avoid messing up the window mode. 826 - Ignore setResizable also on X11 when we're fullscreen to avoid messing up the window mode.
827 827
828 - Work around a crash when pressing ESC after closing a Messagebox (found by Acki) 828 - Work around a crash when pressing ESC after closing a Messagebox (found by Acki)
829 829
830 - Prevent borland compile warnings in SColorHSL::FromRGB and in SVertexColorThresholdManipulator (found by mdeininger) 830 - Prevent borland compile warnings in SColorHSL::FromRGB and in SVertexColorThresholdManipulator (found by mdeininger)
831 831
832 - Improve Windows version detection rules (Patch from brferreira) 832 - Improve Windows version detection rules (Patch from brferreira)
833 833
834 - Make it compile on Borland compilers (thx to mdeininger) 834 - Make it compile on Borland compilers (thx to mdeininger)
835 835
836 - Make sure that CAnimatedMeshSceneNode::clone calls the virtual updateAbsolutePosition for the new object 836 - Make sure that CAnimatedMeshSceneNode::clone calls the virtual updateAbsolutePosition for the new object
837 837
838 - Fix that clones got dropped too often when SceneNodes without parent got cloned (found by Ulf) 838 - Fix that clones got dropped too often when SceneNodes without parent got cloned (found by Ulf)
839 839
840 - Make sure TAB is still recognized on X11 when shift+tab is pressed. This does also fix going to the previous tabstop on X11. 840 - Make sure TAB is still recognized on X11 when shift+tab is pressed. This does also fix going to the previous tabstop on X11.
841 841
842 - Send EGET_ELEMENT_LEFT also when there won't be a new hovered element 842 - Send EGET_ELEMENT_LEFT also when there won't be a new hovered element
843 843
844 - Update docs for EGET_ELEMENT_LEFT and EGET_ELEMENT_HOVERED 844 - Update docs for EGET_ELEMENT_LEFT and EGET_ELEMENT_HOVERED
845 845
846 - Fix tooltips: Remove them when the element is hidden or removed (thx to seven for finding) 846 - Fix tooltips: Remove them when the element is hidden or removed (thx to seven for finding)
847 847
848 - Fix tooltips: Make (more) sure they don't get confused by gui-subelements 848 - Fix tooltips: Make (more) sure they don't get confused by gui-subelements
849 849
850 - Fix tooltips: Get faster relaunch times working 850 - Fix tooltips: Get faster relaunch times working
851 851
852 - Fix tooltips: Make sure hovered element is never the tooltip itself 852 - Fix tooltips: Make sure hovered element is never the tooltip itself
853 853
854 - Fix string::remove which got in an endless loop when remove was called with an empty string (found and fixed by Ulf) 854 - Fix string::remove which got in an endless loop when remove was called with an empty string (found and fixed by Ulf)
855 855
856 - Correctly release the GLSL shaders 856 - Correctly release the GLSL shaders
857 857
858 - Make sure we only release an X11 atom when it was actually created 858 - Make sure we only release an X11 atom when it was actually created
859 859
860 - Fix aabbox collision test, which not only broke the collision test routines, but also frustum culling, octree tests, etc. 860 - Fix aabbox collision test, which not only broke the collision test routines, but also frustum culling, octree tests, etc.
861 861
862 - Fix compilation problem under OSX due to wrong glProgramParameteri usage 862 - Fix compilation problem under OSX due to wrong glProgramParameteri usage
863 863
864 - mem leak in OBJ loader fixed 864 - mem leak in OBJ loader fixed
865 865
866 - Removed some default parameters to reduce ambigious situations 866 - Removed some default parameters to reduce ambigious situations
867 867
868--------------------------- 868---------------------------
869Changes in 1.7 (03.02.2010) 869Changes in 1.7 (03.02.2010)
870 870
871 - Implement minimize and deminimize under OSX. 871 - Implement minimize and deminimize under OSX.
872 872
873 - Define sorting order for vector2d and vector3d in operators <, <=, > and >= to fix bugs 2783509 and 2783510. Operators order now by X,Y,Z and use float tolerances. 873 - Define sorting order for vector2d and vector3d in operators <, <=, > and >= to fix bugs 2783509 and 2783510. Operators order now by X,Y,Z and use float tolerances.
874 874
875 - Ogre mesh 32bit indices fixed. 875 - Ogre mesh 32bit indices fixed.
876 876
877 - Fix tooltips for gui-elements with sub-element like IGUISpinBox (id: 2927079, found by ArakisTheKitsune) 877 - Fix tooltips for gui-elements with sub-element like IGUISpinBox (id: 2927079, found by ArakisTheKitsune)
878 878
879 - ITimer no longer stops when started twice 879 - ITimer no longer stops when started twice
880 880
881 - wchar_t filesystem updates under Windows. 881 - wchar_t filesystem updates under Windows.
882 882
883 - Joystick POV fixed under Windows, ids fixed under OSX. 883 - Joystick POV fixed under Windows, ids fixed under OSX.
884 884
885 - Some updates to skinned mesh for better bones support and scaling animations. 885 - Some updates to skinned mesh for better bones support and scaling animations.
886 886
887 - OSX supports external window id in creation parameters now. 887 - OSX supports external window id in creation parameters now.
888 888
889 - Fix bbox collision tests. 889 - Fix bbox collision tests.
890 890
891 - Updates for win32 key handling 891 - Updates for win32 key handling
892 892
893 - new convenience method for flat plane creation. 893 - new convenience method for flat plane creation.
894 894
895 - Sky dome and other meshes use VBOs by default now. 895 - Sky dome and other meshes use VBOs by default now.
896 896
897 - Speed up b3d loading for files with many frames, material color flags and vertex color support enhanced. 897 - Speed up b3d loading for files with many frames, material color flags and vertex color support enhanced.
898 898
899 - Add hasType to IGUIElement as a dynamic_cast substitute. 899 - Add hasType to IGUIElement as a dynamic_cast substitute.
900 900
901 - Add another parameter to IGUISkin::draw3DWindowBackground to allow getting the client area without actually drawing 901 - Add another parameter to IGUISkin::draw3DWindowBackground to allow getting the client area without actually drawing
902 902
903 - Add function getClientRect to IGUIWindow for getting the draw-able area 903 - Add function getClientRect to IGUIWindow for getting the draw-able area
904 904
905 - Fix bug that menus on IGUIWindows with titlebar got drawn too high (id: 2714400) 905 - Fix bug that menus on IGUIWindows with titlebar got drawn too high (id: 2714400)
906 906
907 - Renamed OctTree to Octree 907 - Renamed OctTree to Octree
908 908
909 - Allow getting a ConstIterator from a non-const core:list 909 - Allow getting a ConstIterator from a non-const core:list
910 910
911 - Add swap functions to irrMath and to the core classes. 911 - Add swap functions to irrMath and to the core classes.
912 912
913 - Deprecate map::isEmpty() and replace it with map::empty() to make it similar to other base classes. 913 - Deprecate map::isEmpty() and replace it with map::empty() to make it similar to other base classes.
914 914
915 - Allow to set the logging level already in SIrrlichtCreationParameters. 915 - Allow to set the logging level already in SIrrlichtCreationParameters.
916 916
917 - Add clearSystemMessages to devices (implemented only for Linux and Win32 so far). 917 - Add clearSystemMessages to devices (implemented only for Linux and Win32 so far).
918 918
919 - Support changing the render window from beginScene also with OpenGL driver. 919 - Support changing the render window from beginScene also with OpenGL driver.
920 920
921 - Add getMaterial2D which allows to alter the 2d render state settings, such as filtering, anti-aliasing, thickness, etc. 921 - Add getMaterial2D which allows to alter the 2d render state settings, such as filtering, anti-aliasing, thickness, etc.
922 922
923 - Fix incorrect cursorpos for resizable windows on Windows Vista (found and patched by buffer) 923 - Fix incorrect cursorpos for resizable windows on Windows Vista (found and patched by buffer)
924 924
925 - Change the beginScene window parameter from void* to SExposedVideoData&. This will allow to manage contexts for OpenGL at some point. 925 - Change the beginScene window parameter from void* to SExposedVideoData&. This will allow to manage contexts for OpenGL at some point.
926 926
927 - Add bzip2 and LZMA decompression modes for zip loader. 927 - Add bzip2 and LZMA decompression modes for zip loader.
928 928
929 - Add OBJ_TEXTURE_PATH and B3D_TEXTURE_PATH to SceneParameters to allow setting texture-paths for obj and b3d. 929 - Add OBJ_TEXTURE_PATH and B3D_TEXTURE_PATH to SceneParameters to allow setting texture-paths for obj and b3d.
930 930
931 - Irrlicht keeps now filenames additionally to the internally used names, thereby fixing some problems with uppercase-filenames on Linux. 931 - Irrlicht keeps now filenames additionally to the internally used names, thereby fixing some problems with uppercase-filenames on Linux.
932 932
933 - Bugfix: Mousewheel no longer sends EMIE_MOUSE_WHEEL messages twice on Linux. 933 - Bugfix: Mousewheel no longer sends EMIE_MOUSE_WHEEL messages twice on Linux.
934 934
935 - Use latest jpeglib 935 - Use latest jpeglib
936 936
937 - refactoring: E_ATTRIBUTE_TYPE and IAttribute have now own headers 937 - refactoring: E_ATTRIBUTE_TYPE and IAttribute have now own headers
938 938
939 - CStringWArrayAttribute speedup 939 - CStringWArrayAttribute speedup
940 940
941 - SceneNodeAnimatorFollowSpline can now loop and pingpong 941 - SceneNodeAnimatorFollowSpline can now loop and pingpong
942 942
943 - Meshviewer.example got some fast-scale buttons. 943 - Meshviewer.example got some fast-scale buttons.
944 944
945 - Support AES-encrypted zip files. Should work with 128, 196, and 256 bit AES. This addition also adds a new PRNG, SHA, and other algorithms to the engine, though no interface is yet added for them. The implementation of the encryption algorithms is provided by Dr Brian Gladman. 945 - Support AES-encrypted zip files. Should work with 128, 196, and 256 bit AES. This addition also adds a new PRNG, SHA, and other algorithms to the engine, though no interface is yet added for them. The implementation of the encryption algorithms is provided by Dr Brian Gladman.
946 946
947 - flattenFilename and getAbsolutePath fixed and properly added at several places. 947 - flattenFilename and getAbsolutePath fixed and properly added at several places.
948 948
949 - Added geometry shaders for OpenGL. A first version of the code was submitted by Matthew Kielan (devsh). 949 - Added geometry shaders for OpenGL. A first version of the code was submitted by Matthew Kielan (devsh).
950 950
951 - Bugfix: irrArray should no longer crash when using other allocators. 951 - Bugfix: irrArray should no longer crash when using other allocators.
952 952
953 - Add MaterialViewer example. 953 - Add MaterialViewer example.
954 954
955 - Texture activation now back in setMaterial, which simplifies writing external material renderers (OpenGL only). 955 - Texture activation now back in setMaterial, which simplifies writing external material renderers (OpenGL only).
956 956
957 - Checkbox uses now disabled text color when disabled. 957 - Checkbox uses now disabled text color when disabled.
958 958
959 - Changed colors for window-title caption to keep them readable when not active. 959 - Changed colors for window-title caption to keep them readable when not active.
960 960
961 - Draw sub-menus to left side if they would be outside main-window otherwise. 961 - Draw sub-menus to left side if they would be outside main-window otherwise.
962 962
963 - Give ListBox better defaults for the ScrollBar stepsizes. 963 - Give ListBox better defaults for the ScrollBar stepsizes.
964 964
965 - Double and triple click events now for each mouse-button. Old events for that got removed. 965 - Double and triple click events now for each mouse-button. Old events for that got removed.
966 966
967 - Fix adding archives twice, which caused multiple archives of the same name and type covering each other. This one required a texture name change from using backslashes to slashes under Windows. 967 - Fix adding archives twice, which caused multiple archives of the same name and type covering each other. This one required a texture name change from using backslashes to slashes under Windows.
968 968
969 - Give access to texture mipmaps. You can provide custom mipmap textures upon generation, regeneration, and locking. 969 - Give access to texture mipmaps. You can provide custom mipmap textures upon generation, regeneration, and locking.
970 Make sure the provided data is large enough and covers all miplevels. Also the returned pointer (from lock) will only cover the smaller data of the mipmap level dimension chosen (level 0 is the original texture). 970 Make sure the provided data is large enough and covers all miplevels. Also the returned pointer (from lock) will only cover the smaller data of the mipmap level dimension chosen (level 0 is the original texture).
971 971
972 - Separate TextureWrap mode into U and V fields 972 - Separate TextureWrap mode into U and V fields
973 973
974 - Add mirror texture wrap modes 974 - Add mirror texture wrap modes
975 975
976 - windows show now active/inactive state 976 - windows show now active/inactive state
977 977
978 - remove unneeded drop/grab calls found by manik_sheeri 978 - remove unneeded drop/grab calls found by manik_sheeri
979 979
980 - fix rounding problem in IGUIElements which have EGUIA_SCALE alignments. 980 - fix rounding problem in IGUIElements which have EGUIA_SCALE alignments.
981 981
982 - MessageBox supports now automatic resizing and images. 982 - MessageBox supports now automatic resizing and images.
983 Deprecated EGDS_MESSAGE_BOX_WIDTH and EGDS_MESSAGE_BOX_HEIGHT 983 Deprecated EGDS_MESSAGE_BOX_WIDTH and EGDS_MESSAGE_BOX_HEIGHT
984 984
985 - Let maya-cam animator react on a setTarget call to the camera which happened outside it's own control 985 - Let maya-cam animator react on a setTarget call to the camera which happened outside it's own control
986 986
987 - New contextmenue features: 987 - New contextmenue features:
988 automatic checking for checked flag. 988 automatic checking for checked flag.
989 close handling now customizable 989 close handling now customizable
990 serialization can handle incomplete xml's 990 serialization can handle incomplete xml's
991 setEventParent now in public interface 991 setEventParent now in public interface
992 New function findItemWithCommandId 992 New function findItemWithCommandId
993 New function insertItem 993 New function insertItem
994 994
995 - new vector3d::getSphericalCoordinateAngles method. 995 - new vector3d::getSphericalCoordinateAngles method.
996 996
997 - new triangle3d::isTotalOutsideBox method. 997 - new triangle3d::isTotalOutsideBox method.
998 998
999 - Newly introduced VertexManipulator interface. This allows for very easy creation of vertex manipulation algorithms. Several manipulators, e.g. vertex color changer and transformation algorithms are already available. 999 - Newly introduced VertexManipulator interface. This allows for very easy creation of vertex manipulation algorithms. Several manipulators, e.g. vertex color changer and transformation algorithms are already available.
1000 1000
1001 - createMeshWith1TCoords avoids vertex duplication 1001 - createMeshWith1TCoords avoids vertex duplication
1002 1002
1003 - getRotation now handles matrices with scaling as well 1003 - getRotation now handles matrices with scaling as well
1004 1004
1005 - Ogre format animations now supported. 1005 - Ogre format animations now supported.
1006 1006
1007 - irrArray: Fixed issues with push_front and reallocation 1007 - irrArray: Fixed issues with push_front and reallocation
1008 Changed behavior for set_pointer and clear, when free_when_destroyed is false 1008 Changed behavior for set_pointer and clear, when free_when_destroyed is false
1009 1009
1010 - NPK (Nebula device archive) reader added, it's an uncompressed PAK-like format 1010 - NPK (Nebula device archive) reader added, it's an uncompressed PAK-like format
1011 1011
1012 - SSkinMeshBuffer::MoveTo* methods renamed to convertTo* 1012 - SSkinMeshBuffer::MoveTo* methods renamed to convertTo*
1013 1013
1014 - Multiple Render Target (MRT) support added, including some enhanced blend features where supported 1014 - Multiple Render Target (MRT) support added, including some enhanced blend features where supported
1015 1015
1016 - Directory changing fixed for virtual file systems (Archives etc) 1016 - Directory changing fixed for virtual file systems (Archives etc)
1017 1017
1018 - Fix texture matrix init in scene manager and driver 1018 - Fix texture matrix init in scene manager and driver
1019 1019
1020 - More draw2dimage support in software drivers 1020 - More draw2dimage support in software drivers
1021 1021
1022 - Sphere node now properly chooses a good tesselation based on the parameters 1022 - Sphere node now properly chooses a good tesselation based on the parameters
1023 1023
1024 - Active camera not registered twice anymore 1024 - Active camera not registered twice anymore
1025 1025
1026 - Parallax/normal map shader rotation bug under OpenGL fixed 1026 - Parallax/normal map shader rotation bug under OpenGL fixed
1027 1027
1028 - bump map handling for obj files fixed 1028 - bump map handling for obj files fixed
1029 1029
1030 - Fog serialization added 1030 - Fog serialization added
1031 1031
1032 - New context menu features added 1032 - New context menu features added
1033 1033
1034 - Bounding Box updates for skinned meshes fixed 1034 - Bounding Box updates for skinned meshes fixed
1035 1035
1036 - The current FPS for an animated scene node can be queried now, added some variables to serialization 1036 - The current FPS for an animated scene node can be queried now, added some variables to serialization
1037 1037
1038 - Scrollbars fixed 1038 - Scrollbars fixed
1039 1039
1040 - Fixed 2d vertex primitive method to correctly handle transparency 1040 - Fixed 2d vertex primitive method to correctly handle transparency
1041 1041
1042 - Fullscreen handling has been enhanced for Windows, now proper resolution is restored on Alt-Tab etc. 1042 - Fullscreen handling has been enhanced for Windows, now proper resolution is restored on Alt-Tab etc.
1043 1043
1044 - Cameras can now be added to the scene node without automatically activating them 1044 - Cameras can now be added to the scene node without automatically activating them
1045 Clone method added 1045 Clone method added
1046 1046
1047 - New video driver method getMaxTextureSize 1047 - New video driver method getMaxTextureSize
1048 1048
1049 - PAK archive reader fixed 1049 - PAK archive reader fixed
1050 1050
1051 - TRANSPARENT_ALPHA_CHANNEL_REF uses modulate to enable lighting 1051 - TRANSPARENT_ALPHA_CHANNEL_REF uses modulate to enable lighting
1052 1052
1053 - LIGHTMAP_ADD now always uses add operator 1053 - LIGHTMAP_ADD now always uses add operator
1054 1054
1055 - Some Unicode file system fixes 1055 - Some Unicode file system fixes
1056 1056
1057 - destructor of irrString not virtual anymore, please don't derive from irrString 1057 - destructor of irrString not virtual anymore, please don't derive from irrString
1058 Some new methods added, for searching and splitting 1058 Some new methods added, for searching and splitting
1059 Assignment operator optimized 1059 Assignment operator optimized
1060 1060
1061 - new lightness method for SColor 1061 - new lightness method for SColor
1062 1062
1063 - draw3DTriangle now renders filled polygons, old behavior can be achieved by setting EMT_WIREFRAME 1063 - draw3DTriangle now renders filled polygons, old behavior can be achieved by setting EMT_WIREFRAME
1064 1064
1065----------------------------- 1065-----------------------------
1066Changes in 1.6.1 (13.01.2010) 1066Changes in 1.6.1 (13.01.2010)
1067 1067
1068 - Fix pingpong for CSceneNodeAnimatorFlyStraight (found by gbox) 1068 - Fix pingpong for CSceneNodeAnimatorFlyStraight (found by gbox)
1069 1069
1070 - Fix bug with IGUIEditBox where the cursor position is reset on text change. 1070 - Fix bug with IGUIEditBox where the cursor position is reset on text change.
1071 1071
1072 - Make sure the window top-left corner on Windows is not negative on start so that Windows sytem-menu is always visible. 1072 - Make sure the window top-left corner on Windows is not negative on start so that Windows sytem-menu is always visible.
1073 1073
1074 - Fix problem that the window did sometimes not get the keyboard focus in X11 in fullscreen. Add more debug output in case focus grabbing goes wrong. 1074 - Fix problem that the window did sometimes not get the keyboard focus in X11 in fullscreen. Add more debug output in case focus grabbing goes wrong.
1075 1075
1076 - Fix screensize in videodriver when we didn't get the requested window size. This also prevents that gui-clicks are no longer synchronized with gui-drawing and elements can't be hit anymore. 1076 - Fix screensize in videodriver when we didn't get the requested window size. This also prevents that gui-clicks are no longer synchronized with gui-drawing and elements can't be hit anymore.
1077 1077
1078 - Bugfix: Prevent a crash when getTypeName was called for the guienvironment. EGUIET_ELEMENT got changed for this. 1078 - Bugfix: Prevent a crash when getTypeName was called for the guienvironment. EGUIET_ELEMENT got changed for this.
1079 1079
1080 - Bugfix: Horizontal centered font with linebreaks draw now all lines. For example multiline TextSceneNodes work again. 1080 - Bugfix: Horizontal centered font with linebreaks draw now all lines. For example multiline TextSceneNodes work again.
1081 1081
1082 - Bugfix: spinbox can no longer get in an endless loop due to floating point rounding error (found by slavik262) 1082 - Bugfix: spinbox can no longer get in an endless loop due to floating point rounding error (found by slavik262)
1083 1083
1084 - !!API change!! Disabled AntiAliasing of Lines in material default 1084 - !!API change!! Disabled AntiAliasing of Lines in material default
1085 Please enable this manually per material when sure that it won't lead to SW rendering. 1085 Please enable this manually per material when sure that it won't lead to SW rendering.
1086 1086
1087 - IGUIComboBox: clicking on the statictext displaying the active selection does now close and open listbox correctly. (Bug found by Reiko) 1087 - IGUIComboBox: clicking on the statictext displaying the active selection does now close and open listbox correctly. (Bug found by Reiko)
1088 1088
1089 - Scrollbuttons in IGUITabControl adapt now to tab-height. 1089 - Scrollbuttons in IGUITabControl adapt now to tab-height.
1090 1090
1091 - Fix texturing of cylinder mesh 1091 - Fix texturing of cylinder mesh
1092 1092
1093 - Fix modal dialog position (found by LoneBoco: http://sourceforge.net/tracker/?func=detail&aid=2900266&group_id=74339&atid=540676) 1093 - Fix modal dialog position (found by LoneBoco: http://sourceforge.net/tracker/?func=detail&aid=2900266&group_id=74339&atid=540676)
1094 1094
1095 - Fix DMF loading 1095 - Fix DMF loading
1096 1096
1097 - Fixing left+right special keys (ctrl, shift, alt) on Win32 (thanks to pc0de for good patch-ideas). 1097 - Fixing left+right special keys (ctrl, shift, alt) on Win32 (thanks to pc0de for good patch-ideas).
1098 1098
1099 - Make stringarrays for enums in IGUISkin a little safer 1099 - Make stringarrays for enums in IGUISkin a little safer
1100 1100
1101 - Add support for keys KEY_PRINT, KEY_HOME (on numpad) and KEY_NUMLOCK on Linux. 1101 - Add support for keys KEY_PRINT, KEY_HOME (on numpad) and KEY_NUMLOCK on Linux.
1102 1102
1103 - Fix material handling in createMeshWith1TCoords 1103 - Fix material handling in createMeshWith1TCoords
1104 1104
1105 - Fix another (OldValue == NewValue) before drop()/grap(), this time in CTextureAttribute::setTexture. 1105 - Fix another (OldValue == NewValue) before drop()/grap(), this time in CTextureAttribute::setTexture.
1106 1106
1107 - Fix LIGHTMAP_LIGHTING for D3D drivers. 1107 - Fix LIGHTMAP_LIGHTING for D3D drivers.
1108 1108
1109 - AntiAliasing disabled for debug render elements. 1109 - AntiAliasing disabled for debug render elements.
1110 1110
1111 - Bugfix: CGUIToolBar::addButton does no longer mess up when no image is set and does now actually work with the text. 1111 - Bugfix: CGUIToolBar::addButton does no longer mess up when no image is set and does now actually work with the text.
1112 1112
1113 - Fix ninja animation range which got messed up a little when b3d animations got fixed (thx gbox for finding) 1113 - Fix ninja animation range which got messed up a little when b3d animations got fixed (thx gbox for finding)
1114 1114
1115--------------------------- 1115---------------------------
1116Changes in 1.6 (23.09.2009) 1116Changes in 1.6 (23.09.2009)
1117 1117
1118 - Added IFileSystem::createEmptyFileList, exposed IFileList::sort, addItem and added getID 1118 - Added IFileSystem::createEmptyFileList, exposed IFileList::sort, addItem and added getID
1119 1119
1120 - Fix MAKE_IRR_ID so it can be used from outside the irr namespace (Micha's patch) 1120 - Fix MAKE_IRR_ID so it can be used from outside the irr namespace (Micha's patch)
1121 1121
1122 - Renamed some methods in ISkinnedMesh to match the official Irrlicht naming scheme according to createXXX() 1122 - Renamed some methods in ISkinnedMesh to match the official Irrlicht naming scheme according to createXXX()
1123 1123
1124 - Change debug data to draw using lines instead of arrows, which is much faster. Patch by pc0de 1124 - Change debug data to draw using lines instead of arrows, which is much faster. Patch by pc0de
1125 1125
1126 - Fix a bug with FPS camera animator causing stutters. Patch by FuzzYspo0N 1126 - Fix a bug with FPS camera animator causing stutters. Patch by FuzzYspo0N
1127 1127
1128 - Fix scrolling controls in CGUITabControl 1128 - Fix scrolling controls in CGUITabControl
1129 1129
1130 - Fix a bug when getting optimal texture size in D3D drivers, by Jetro Lauha (tonic) 1130 - Fix a bug when getting optimal texture size in D3D drivers, by Jetro Lauha (tonic)
1131 1131
1132 - Added EGDS_TITLEBARTEXT_DISTANCE_X and EGDS_TITLEBARTEXT_DISTANCE_Y to GUI, submitted by FuzzYspo0N 1132 - Added EGDS_TITLEBARTEXT_DISTANCE_X and EGDS_TITLEBARTEXT_DISTANCE_Y to GUI, submitted by FuzzYspo0N
1133 1133
1134 - Fix for UFT8 filenames displayed in file dialog, patch by MadHyde. 1134 - Fix for UFT8 filenames displayed in file dialog, patch by MadHyde.
1135 1135
1136 - Added const method for array::binary_search, potentially slow as it doesn't sort the list! 1136 - Added const method for array::binary_search, potentially slow as it doesn't sort the list!
1137 1137
1138 - Add support for scaling button images. 1138 - Add support for scaling button images.
1139 1139
1140 - Irrlicht can now come with multiple device types compiled in, the device to use is selected by SIrrlichtCreationParameters.DeviceType. This defaults to EIDT_BEST which automatically select the best device available starting with native, then X11, SDL and finally the console. 1140 - Irrlicht can now come with multiple device types compiled in, the device to use is selected by SIrrlichtCreationParameters.DeviceType. This defaults to EIDT_BEST which automatically select the best device available starting with native, then X11, SDL and finally the console.
1141 1141
1142 - Added support for EXP2 fog distribution. This required a change in the setFog parameters where now an enum value instead of the bool linear is given. 1142 - Added support for EXP2 fog distribution. This required a change in the setFog parameters where now an enum value instead of the bool linear is given.
1143 1143
1144 - IFileSystem changes: 1144 - IFileSystem changes:
1145 1145
1146 - Renamed the following functions- 1146 - Renamed the following functions-
1147 IFileArchive::getArchiveType to getType 1147 IFileArchive::getArchiveType to getType
1148 IFileSystem::registerFileArchive to addFileArchive 1148 IFileSystem::registerFileArchive to addFileArchive
1149 IFileSystem::unregisterFileArchive to removeFileArchive 1149 IFileSystem::unregisterFileArchive to removeFileArchive
1150 IFileArchive::openFile to createAndOpenFile 1150 IFileArchive::openFile to createAndOpenFile
1151 1151
1152 - New enum, E_FILE_ARCHIVE_TYPE. getType on IArchiveLoader and IFileArchive now both return this. 1152 - New enum, E_FILE_ARCHIVE_TYPE. getType on IArchiveLoader and IFileArchive now both return this.
1153 1153
1154 - IFileSystem::addFileArchive takes a parameter to specify the archive type rather always using the file extension. IFileSystem::addZipFileArchive, addFolderFileArchive and addPakFileArchive now use this but these functions are now marked as deprecated. Users should now use addFileArchive instead. 1154 - IFileSystem::addFileArchive takes a parameter to specify the archive type rather always using the file extension. IFileSystem::addZipFileArchive, addFolderFileArchive and addPakFileArchive now use this but these functions are now marked as deprecated. Users should now use addFileArchive instead.
1155 1155
1156 - Added TAR archive loader. 1156 - Added TAR archive loader.
1157 1157
1158 - The ZIP archive loader can now load gzip files, combined with the TAR loader this means Irrlicht now has native support for .tar.gz 1158 - The ZIP archive loader can now load gzip files, combined with the TAR loader this means Irrlicht now has native support for .tar.gz
1159 Currently this must be done in two calls, for example: 1159 Currently this must be done in two calls, for example:
1160 fileSystem->addFileArchive("path/to/myArchive.tar.gz"); 1160 fileSystem->addFileArchive("path/to/myArchive.tar.gz");
1161 fileSystem->addFileArchive("myArchive.tar"); 1161 fileSystem->addFileArchive("myArchive.tar");
1162 1162
1163 - Fix highlighting in IGUIEditBox where kerning pairs are used in the font. For example in future italic, OS or other custom fonts. 1163 - Fix highlighting in IGUIEditBox where kerning pairs are used in the font. For example in future italic, OS or other custom fonts.
1164 1164
1165 - IOSOperator::getTextFromClipboard returns now const c8* instead of c8* 1165 - IOSOperator::getTextFromClipboard returns now const c8* instead of c8*
1166 1166
1167 - Support for copy&paste on linux (X11) added (fixing bug 2804014 found by Pan) 1167 - Support for copy&paste on linux (X11) added (fixing bug 2804014 found by Pan)
1168 1168
1169 - bugfix for 2795321 found by egrath: Don't rely anymore on broken XkbSetDetectableAutoRepeat. 1169 - bugfix for 2795321 found by egrath: Don't rely anymore on broken XkbSetDetectableAutoRepeat.
1170 1170
1171 - bugfix: CMountPointReader::openFile no longer returns true for empty files. Corresponding test added. 1171 - bugfix: CMountPointReader::openFile no longer returns true for empty files. Corresponding test added.
1172 1172
1173 - Direct3D now also uses screen coordinates in 2d mode, just like OpenGL. This means that screen coords are going from 0..ScreenWidth and 0..ScreenHeight instead of -1..1. 1173 - Direct3D now also uses screen coordinates in 2d mode, just like OpenGL. This means that screen coords are going from 0..ScreenWidth and 0..ScreenHeight instead of -1..1.
1174 1174
1175 - ALT+F4 keypress now closes Windows SDL device 1175 - ALT+F4 keypress now closes Windows SDL device
1176 1176
1177 - Allow Direct3D drivers in SDL, patch by Halifax 1177 - Allow Direct3D drivers in SDL, patch by Halifax
1178 1178
1179 - Added compiler error when attempting to compile with VC6. 1179 - Added compiler error when attempting to compile with VC6.
1180 1180
1181 - Use setWindowTextA in Windows device for WIN64 platform, posted by veegun 1181 - Use setWindowTextA in Windows device for WIN64 platform, posted by veegun
1182 1182
1183 - ELL_ERROR log events are now created when shaders fail to compile or link, reported by Halan 1183 - ELL_ERROR log events are now created when shaders fail to compile or link, reported by Halan
1184 1184
1185 - irrList now uses irrAllocator, fixed by Nox 1185 - irrList now uses irrAllocator, fixed by Nox
1186 1186
1187 - Added IGUIWindow::setDraggable and IGUIWindow::isDraggable, by Nox 1187 - Added IGUIWindow::setDraggable and IGUIWindow::isDraggable, by Nox
1188 1188
1189 - Added SGI RGB file reader by Gary Conway, for loading Silicon Graphics .rgb, .rgba, .sgi, .int and .inta textures 1189 - Added SGI RGB file reader by Gary Conway, for loading Silicon Graphics .rgb, .rgba, .sgi, .int and .inta textures
1190 1190
1191 - Renamed setResizeAble to setResizable 1191 - Renamed setResizeAble to setResizable
1192 1192
1193 - Added new device method minimizeWindow which minimizes the window (just as if the minimize button has been clicked). 1193 - Added new device method minimizeWindow which minimizes the window (just as if the minimize button has been clicked).
1194 1194
1195 - SkyDome is now serialized correctly 1195 - SkyDome is now serialized correctly
1196 1196
1197 - Added PLY mesh reader and writer 1197 - Added PLY mesh reader and writer
1198 1198
1199 - Ensure ListBox on combo box doesn't hang off the bottom of the GUI root, by Matthias Specht 1199 - Ensure ListBox on combo box doesn't hang off the bottom of the GUI root, by Matthias Specht
1200 1200
1201 - Made IGUIElements recalculate clipping rectangle after setNotClipped, reported by Aelis440 1201 - Made IGUIElements recalculate clipping rectangle after setNotClipped, reported by Aelis440
1202 1202
1203 - Bug fix for the combo box where it showed white text instead of skin color before being focused, fix posted by drewbacca 1203 - Bug fix for the combo box where it showed white text instead of skin color before being focused, fix posted by drewbacca
1204 1204
1205 - EGDS_MESSAGE_BOX_HEIGHT is now honoured, bug reported by Spkka 1205 - EGDS_MESSAGE_BOX_HEIGHT is now honoured, bug reported by Spkka
1206 1206
1207 - Fixed a bug in the edit box where events are sometimes sent to a null parent, reported by Sudi. 1207 - Fixed a bug in the edit box where events are sometimes sent to a null parent, reported by Sudi.
1208 1208
1209 - Coordinate system fix for OpenGL in SDL device 1209 - Coordinate system fix for OpenGL in SDL device
1210 1210
1211 - Added generic console device. You can now use Irrlicht to create and manipuate graphics on a shell where no graphics hardware 1211 - Added generic console device. You can now use Irrlicht to create and manipuate graphics on a shell where no graphics hardware
1212 or windowing system is available. To enable it uncomment #define _IRR_USE_CONSOLE_DEVICE_ in IrrCompileConfig.h 1212 or windowing system is available. To enable it uncomment #define _IRR_USE_CONSOLE_DEVICE_ in IrrCompileConfig.h
1213 - The console device can now present images from the software drivers and display them as ASCII art in the console 1213 - The console device can now present images from the software drivers and display them as ASCII art in the console
1214 - By default it replaces the default font in the skin, to prevent fonts from being huge. 1214 - By default it replaces the default font in the skin, to prevent fonts from being huge.
1215 1215
1216 - Fixed problems with changing cursor visibility while mouse is pressed on windows 1216 - Fixed problems with changing cursor visibility while mouse is pressed on windows
1217 1217
1218 - Allow control of background drawing in listbox 1218 - Allow control of background drawing in listbox
1219 1219
1220 - Allow control of drawing background and titlebar in windows 1220 - Allow control of drawing background and titlebar in windows
1221 1221
1222 - Improved window serialization 1222 - Improved window serialization
1223 1223
1224 - Add mouse events EMIE_MOUSE_DOUBLE_CLICK and EMIE_MOUSE_TRIPLE_CLICK (thx to Ulf for patch proposal) 1224 - Add mouse events EMIE_MOUSE_DOUBLE_CLICK and EMIE_MOUSE_TRIPLE_CLICK (thx to Ulf for patch proposal)
1225 1225
1226 - Set "ButtonStates" for mouse events also on Linux (was only for Windows formerly) 1226 - Set "ButtonStates" for mouse events also on Linux (was only for Windows formerly)
1227 1227
1228 - Add Shift+Control states to mouse event 1228 - Add Shift+Control states to mouse event
1229 1229
1230 - bugfix (2003238): serialize modal screens 1230 - bugfix (2003238): serialize modal screens
1231 1231
1232 - allow stacking modal screens 1232 - allow stacking modal screens
1233 1233
1234 - allowing hiding modals 1234 - allowing hiding modals
1235 1235
1236 - replace many IsVisible checks with virtual isVisible() checks in IGUIElement 1236 - replace many IsVisible checks with virtual isVisible() checks in IGUIElement
1237 1237
1238 - bugfix: reset selected row when clearing CGUITable 1238 - bugfix: reset selected row when clearing CGUITable
1239 1239
1240 - adding events EGET_EDITBOX_CHANGED and EGET_EDITBOX_MARKING_CHANGED 1240 - adding events EGET_EDITBOX_CHANGED and EGET_EDITBOX_MARKING_CHANGED
1241 1241
1242 - prevent editbox from recalculating its textbreaking each frame 1242 - prevent editbox from recalculating its textbreaking each frame
1243 1243
1244 - let spinbox react on each textchange without waiting for enter to prevent getting value changes without corresponding EGET_SPINBOX_CHANGED events. 1244 - let spinbox react on each textchange without waiting for enter to prevent getting value changes without corresponding EGET_SPINBOX_CHANGED events.
1245 1245
1246 - new test for zipreader 1246 - new test for zipreader
1247 1247
1248 - prevent dropping objects accidentally in many set functions 1248 - prevent dropping objects accidentally in many set functions
1249 1249
1250 - Reversed change in vector3d::normalize. 1250 - Reversed change in vector3d::normalize.
1251 Works now again as documented and a corresponding test has been added. 1251 Works now again as documented and a corresponding test has been added.
1252 Does fix bug 2770709 (https://sourceforge.net/tracker/?func=detail&aid=2770709&group_id=74339&atid=540676) 1252 Does fix bug 2770709 (https://sourceforge.net/tracker/?func=detail&aid=2770709&group_id=74339&atid=540676)
1253 1253
1254 - Animations can now be paused by setting the fps to 0. 1254 - Animations can now be paused by setting the fps to 0.
1255 1255
1256 - Avoid fp-precision problem in getPickedNodeBB (see also http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=33838&highlight=). 1256 - Avoid fp-precision problem in getPickedNodeBB (see also http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=33838&highlight=).
1257 This change might also fix the problem with picking nodes found by aanderse (http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=32890&highlight=) 1257 This change might also fix the problem with picking nodes found by aanderse (http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=32890&highlight=)
1258 1258
1259 - implemented isALoadableFileFormat ( File *file ) for the Archive Loader 1259 - implemented isALoadableFileFormat ( File *file ) for the Archive Loader
1260 1260
1261 - PixelBlend16 and PixelBlend16_simd are working for the new rules. 1261 - PixelBlend16 and PixelBlend16_simd are working for the new rules.
1262 1262
1263 - bugfix. CLightSceneNode didn't correctly update it's attributes 1263 - bugfix. CLightSceneNode didn't correctly update it's attributes
1264 1264
1265 - vector template and equals tests 1265 - vector template and equals tests
1266 also set the equal test for s32 to behave like the f32 routine. 1266 also set the equal test for s32 to behave like the f32 routine.
1267 The function equals always implements a weak test. 1267 The function equals always implements a weak test.
1268 that means a tolerance MUST always be used if you use the equal function. default is 1. 1268 that means a tolerance MUST always be used if you use the equal function. default is 1.
1269 1269
1270 - VideoDriver drawPixel 1270 - VideoDriver drawPixel
1271 The HW renderes are using the alpha components for blending. 1271 The HW renderes are using the alpha components for blending.
1272 The Software Renderes and image loaders are using CImage::setPixel copy. 1272 The Software Renderes and image loaders are using CImage::setPixel copy.
1273 so setPixel is engaged to either blends or copy the pixel 1273 so setPixel is engaged to either blends or copy the pixel
1274 default: false 1274 default: false
1275 - Burningvideo 1275 - Burningvideo
1276 added RenderMaterial EMT_SPHERE_MAP 1276 added RenderMaterial EMT_SPHERE_MAP
1277 pushed burningsvideo to 0.43 1277 pushed burningsvideo to 0.43
1278 added RenderMaterial EMT_REFLECTION_2_LAYER 1278 added RenderMaterial EMT_REFLECTION_2_LAYER
1279 pushed burningsvideo to 0.44 1279 pushed burningsvideo to 0.44
1280 set EMT_TRANSPARENT_ALPHA_CHANNEL_REF 1280 set EMT_TRANSPARENT_ALPHA_CHANNEL_REF
1281 to use AlphaRef 0.5 like Direct3D 1281 to use AlphaRef 0.5 like Direct3D
1282 1282
1283 One Note: in OpenGL there is know difference between sphere_map and reflection layer 1283 One Note: in OpenGL there is know difference between sphere_map and reflection layer
1284 both using GL_TEXTURE_GEN_MODE GL_SPHERE_MAP, whereas in d3d one time using camera_normal 1284 both using GL_TEXTURE_GEN_MODE GL_SPHERE_MAP, whereas in d3d one time using camera_normal
1285 on sphere and reflection on refletcion_layer. 1285 on sphere and reflection on refletcion_layer.
1286 1286
1287 The visual difference is that on sphere map the "image is not moving" when you rotate the 1287 The visual difference is that on sphere map the "image is not moving" when you rotate the
1288 viewer. For Burning i took the opengl visual. always moving 1288 viewer. For Burning i took the opengl visual. always moving
1289 1289
1290 - rename quake3 SEntity to IEntity to be confom with IShader 1290 - rename quake3 SEntity to IEntity to be confom with IShader
1291 1291
1292 - fixed createMeshWith2TCoords, normals were missing during copy. 1292 - fixed createMeshWith2TCoords, normals were missing during copy.
1293 1293
1294 - added 1294 - added
1295 //! Creates a copy of the mesh, which will only consist of S3DVertex vertices. 1295 //! Creates a copy of the mesh, which will only consist of S3DVertex vertices.
1296 IMesh* CMeshManipulator::createMeshWith1TCoords(IMesh* mesh) const 1296 IMesh* CMeshManipulator::createMeshWith1TCoords(IMesh* mesh) const
1297 1297
1298 - added io::IFileSystem* CSceneManager::getFileSystem() 1298 - added io::IFileSystem* CSceneManager::getFileSystem()
1299 1299
1300 - added virtual const c8* ISceneManager::getAnimatorTypeName(ESCENE_NODE_ANIMATOR_TYPE type); 1300 - added virtual const c8* ISceneManager::getAnimatorTypeName(ESCENE_NODE_ANIMATOR_TYPE type);
1301 1301
1302 - added CSceneNodeAnimatorFlyCircle::radiusEllipsoid. 1302 - added CSceneNodeAnimatorFlyCircle::radiusEllipsoid.
1303 if radiusEllipsoid == 0 the default circle animation is done 1303 if radiusEllipsoid == 0 the default circle animation is done
1304 else radiusEllipsoid forms the b-axe of the ellipsoid. 1304 else radiusEllipsoid forms the b-axe of the ellipsoid.
1305 -> gummiball bouncing 1305 -> gummiball bouncing
1306 1306
1307 - added ISceneManager::createFlyStraightAnimator variable bool ping-pong 1307 - added ISceneManager::createFlyStraightAnimator variable bool ping-pong
1308 used in loop mode to device if start from beginning ( default ) or make ping-pong 1308 used in loop mode to device if start from beginning ( default ) or make ping-pong
1309 -> straight bouncing 1309 -> straight bouncing
1310 1310
1311 - changed IFileSystem::registerFileArchive 1311 - changed IFileSystem::registerFileArchive
1312 remove the index of the hierarchy and added a new interface method 1312 remove the index of the hierarchy and added a new interface method
1313 //! move the hirarchy of the filesystem. moves sourceIndex relative up or down 1313 //! move the hirarchy of the filesystem. moves sourceIndex relative up or down
1314 virtual bool moveFileArchive( u32 sourceIndex, s32 relative ) = 0; 1314 virtual bool moveFileArchive( u32 sourceIndex, s32 relative ) = 0;
1315 1315
1316 - bugfix and changes in SViewFrustum::SViewFrustum 1316 - bugfix and changes in SViewFrustum::SViewFrustum
1317 wrong size of Matrices copy. 1317 wrong size of Matrices copy.
1318 renamed E_TRANSFORMATION_STATE_2 to E_TRANSFORMATION_STATE_FRUSTUM 1318 renamed E_TRANSFORMATION_STATE_2 to E_TRANSFORMATION_STATE_FRUSTUM
1319 therefore also changed SViewFrustum::setTransformState to not tap 1319 therefore also changed SViewFrustum::setTransformState to not tap
1320 1320
1321 in the pitfall again of wrong memory... 1321 in the pitfall again of wrong memory...
1322 1322
1323 - moved 1323 - moved
1324 //! EMT_ONETEXTURE_BLEND: has BlendFactor Alphablending 1324 //! EMT_ONETEXTURE_BLEND: has BlendFactor Alphablending
1325 inline bool textureBlendFunc_hasAlpha ( E_BLEND_FACTOR factor ) const 1325 inline bool textureBlendFunc_hasAlpha ( E_BLEND_FACTOR factor ) const
1326 from the material renderes ( 3x declared ) to SMaterial.h 1326 from the material renderes ( 3x declared ) to SMaterial.h
1327 1327
1328 - updated managed light example to use standard driver selection 1328 - updated managed light example to use standard driver selection
1329 1329
1330 - BurningsVideo 1330 - BurningsVideo
1331 - LightModel reworked. 1331 - LightModel reworked.
1332 Point Light & Direction Light works for Diffuse Color as expected 1332 Point Light & Direction Light works for Diffuse Color as expected
1333 Specular and Fog still have problems ( needs new pixel shader ) 1333 Specular and Fog still have problems ( needs new pixel shader )
1334 pushed burningsvideo to 0.42 for this major step 1334 pushed burningsvideo to 0.42 for this major step
1335 1335
1336 - removed obsolete matrix transformations 1336 - removed obsolete matrix transformations
1337 renamed E_TRANSFORMATION_STATE_2 to E_TRANSFORMATION_STATE_BURNING 1337 renamed E_TRANSFORMATION_STATE_2 to E_TRANSFORMATION_STATE_BURNING
1338 1338
1339 - cleaned line3d.h vector3d.h template behavior. 1339 - cleaned line3d.h vector3d.h template behavior.
1340 many mixed f32/f64 implementations are here. i'm not sure if this should be 1340 many mixed f32/f64 implementations are here. i'm not sure if this should be
1341 the default behavior to use f64 for example for 1.0/x value, because they 1341 the default behavior to use f64 for example for 1.0/x value, because they
1342 benefit from more precisions, but in my point of view the user is responsible 1342 benefit from more precisions, but in my point of view the user is responsible
1343 of choosing a vector3d<f32> or vector3d<f64>. 1343 of choosing a vector3d<f32> or vector3d<f64>.
1344 1344
1345 - added core::squareroot to irrmath.h 1345 - added core::squareroot to irrmath.h
1346 -> for having candidates for faster math in the same file 1346 -> for having candidates for faster math in the same file
1347 1347
1348 - added AllowZWriteOnTransparent from SceneManager to burningsvideo 1348 - added AllowZWriteOnTransparent from SceneManager to burningsvideo
1349 1349
1350 -added hasAlpha() to ITexture 1350 -added hasAlpha() to ITexture
1351 This info can be used for e.q to downgrade a transparent alpha channel blit 1351 This info can be used for e.q to downgrade a transparent alpha channel blit
1352 to add if the texture has no alpha channel. 1352 to add if the texture has no alpha channel.
1353 1353
1354- FileSystem 2.0 SUPER MASTER MAJOR API CHANGE !!! 1354- FileSystem 2.0 SUPER MASTER MAJOR API CHANGE !!!
1355 1355
1356 The FileSystem is now build internally like for e.g. the image- and meshloaders. 1356 The FileSystem is now build internally like for e.g. the image- and meshloaders.
1357 There exists a known list of ArchiveLoaders, which know how to produce a Archive. 1357 There exists a known list of ArchiveLoaders, which know how to produce a Archive.
1358 The Loaders and the Archives can be attached/detached on runtime. 1358 The Loaders and the Archives can be attached/detached on runtime.
1359 1359
1360 The FileNames are now stored as io::path. where c16 is toggled between char/wchar 1360 The FileNames are now stored as io::path. where c16 is toggled between char/wchar
1361 with the #define flag _IRR_WCHAR_FILESYSTEM, to supported unicode backends (default:off) 1361 with the #define flag _IRR_WCHAR_FILESYSTEM, to supported unicode backends (default:off)
1362 Replaced most (const c8* filename) to string references. 1362 Replaced most (const c8* filename) to string references.
1363 1363
1364 Basically the FileSystem is divided into two regions. Native and Virtual. 1364 Basically the FileSystem is divided into two regions. Native and Virtual.
1365 Native means using the backend OS. 1365 Native means using the backend OS.
1366 Virtual means only use currently attached IArchives. 1366 Virtual means only use currently attached IArchives.
1367 1367
1368 Browsing 1368 Browsing
1369 each FileSystem has it's own workdirectory and it's own methods to 1369 each FileSystem has it's own workdirectory and it's own methods to
1370 - create a FileTree 1370 - create a FileTree
1371 - add/remove files & directory ( to be done ) 1371 - add/remove files & directory ( to be done )
1372 Hint: store a savegame in a zip archive... 1372 Hint: store a savegame in a zip archive...
1373 1373
1374 basic browsing for all archives is implemented. 1374 basic browsing for all archives is implemented.
1375 Example 21. Quake3Explorer shows this 1375 Example 21. Quake3Explorer shows this
1376 1376
1377 TODO: 1377 TODO:
1378 - a file filter should be implemented. 1378 - a file filter should be implemented.
1379 - The IArchive should have a function to create a filetree 1379 - The IArchive should have a function to create a filetree
1380 for now CFileList is used. 1380 for now CFileList is used.
1381 1381
1382 Class Hierarchy: 1382 Class Hierarchy:
1383 1383
1384 IArchiveLoader: is able to produce a IFileArchive 1384 IArchiveLoader: is able to produce a IFileArchive
1385 - ZipLoader 1385 - ZipLoader
1386 - PakLoader 1386 - PakLoader
1387 - MountPointReader ( formaly known as CUnzipReader ) 1387 - MountPointReader ( formaly known as CUnzipReader )
1388 1388
1389 IFileArchive: 1389 IFileArchive:
1390 -ZipArchive 1390 -ZipArchive
1391 -PakArchive 1391 -PakArchive
1392 -MountPoint (known as FolderFile) 1392 -MountPoint (known as FolderFile)
1393 1393
1394 IFileSystem 1394 IFileSystem
1395 - addArchiveLoader 1395 - addArchiveLoader
1396 1396
1397 - changed implementation of isALoadableFileExtension in all loaders 1397 - changed implementation of isALoadableFileExtension in all loaders
1398 to have consistent behavior 1398 to have consistent behavior
1399 - added a parameter to IFileList * createFileList 1399 - added a parameter to IFileList * createFileList
1400 setFileListSystem 1400 setFileListSystem
1401 allows to query files in any of the game archives 1401 allows to query files in any of the game archives
1402 standard behavior listtype = SYSTEM ( default) 1402 standard behavior listtype = SYSTEM ( default)
1403 1403
1404 - CLimitReadFile 1404 - CLimitReadFile
1405 added multiple file random-access support. 1405 added multiple file random-access support.
1406 solved problems with mixed compressed & uncompressed files in a zip 1406 solved problems with mixed compressed & uncompressed files in a zip
1407 1407
1408- IrrlichtDevice 1408- IrrlichtDevice
1409 added: 1409 added:
1410 virtual bool setGammaRamp( f32 red, f32 green, f32 blue, f32 brightness, f32 contrast ) = 0; 1410 virtual bool setGammaRamp( f32 red, f32 green, f32 blue, f32 brightness, f32 contrast ) = 0;
1411 virtual bool getGammaRamp( f32 &red, f32 &green, f32 &blue ) = 0; 1411 virtual bool getGammaRamp( f32 &red, f32 &green, f32 &blue ) = 0;
1412 and calculating methods to DeviceStub. 1412 and calculating methods to DeviceStub.
1413 1413
1414 - irrlicht.h 1414 - irrlicht.h
1415 changed exported irrlicht.dll routines createDevice, createDeviceEx, IdentityMatrix 1415 changed exported irrlicht.dll routines createDevice, createDeviceEx, IdentityMatrix
1416 to extern "C" name mangling. 1416 to extern "C" name mangling.
1417 1417
1418 - ParticleSystem 1418 - ParticleSystem
1419 removed the private (old?,wrong?) interface from the ParticleEffectors 1419 removed the private (old?,wrong?) interface from the ParticleEffectors
1420 to match the parent class irr::io::IAttributeExchangingObject::deserializeAttributes 1420 to match the parent class irr::io::IAttributeExchangingObject::deserializeAttributes
1421 1421
1422- Generic 1422- Generic
1423 - vector3d<T>& normalize() optimized 1423 - vector3d<T>& normalize() optimized
1424 added reciprocal_squareroot for f64 1424 added reciprocal_squareroot for f64
1425 1425
1426 - dimension2d 1426 - dimension2d
1427 added operator dimension2d<T>& operator=(const dimension2d<U>& other) 1427 added operator dimension2d<T>& operator=(const dimension2d<U>& other)
1428 to cast between different types 1428 to cast between different types
1429 1429
1430 - vector2d bugfix operator+= 1430 - vector2d bugfix operator+=
1431 1431
1432 - C3DSMeshLoader renamed chunks const u16 to a enum 1432 - C3DSMeshLoader renamed chunks const u16 to a enum
1433 removing "variable declared but never used warning" 1433 removing "variable declared but never used warning"
1434 1434
1435 - added a global const identity Material 1435 - added a global const identity Material
1436 changed all references *((video::SMaterial*)0) to point to IdentityMaterial 1436 changed all references *((video::SMaterial*)0) to point to IdentityMaterial
1437 removed warning: "a NULL reference is not allowed" 1437 removed warning: "a NULL reference is not allowed"
1438 1438
1439 - modified IRRLICHT_MATH to not support reciprocal stuff 1439 - modified IRRLICHT_MATH to not support reciprocal stuff
1440 but to use faster float-to-int conversion. 1440 but to use faster float-to-int conversion.
1441 1441
1442 - core::matrix4 1442 - core::matrix4
1443 USE_MATRIX_TEST 1443 USE_MATRIX_TEST
1444 1444
1445 i tried to optimize the identity-check ( w.r.t. performance) 1445 i tried to optimize the identity-check ( w.r.t. performance)
1446 i didn't succeed so well, so i made a define for the matrix isIdentity -check 1446 i didn't succeed so well, so i made a define for the matrix isIdentity -check
1447 for now it's sometimes faster to always calculate versus identity-check 1447 for now it's sometimes faster to always calculate versus identity-check
1448 but if there are a lot of scenenodes/ particles one can profit from the 1448 but if there are a lot of scenenodes/ particles one can profit from the
1449 fast_inverse matrix, when no scaling is used. further approvement could 1449 fast_inverse matrix, when no scaling is used. further approvement could
1450 be done on inverse for just translation! ( many static scenenodes are not rotated, 1450 be done on inverse for just translation! ( many static scenenodes are not rotated,
1451 they are just placed somewhere in the world) 1451 they are just placed somewhere in the world)
1452 one thing to take in account is that sizeof(matrix) is 64 byte and 1452 one thing to take in account is that sizeof(matrix) is 64 byte and
1453 with the additional bool/u32 makes it 66 byte which is not really cache-friendly.. 1453 with the additional bool/u32 makes it 66 byte which is not really cache-friendly..
1454 1454
1455 - added buildRotateFromTo 1455 - added buildRotateFromTo
1456 Builds a matrix that rotates from one vector to another 1456 Builds a matrix that rotates from one vector to another
1457 1457
1458 - irr::array. changed allocating routine in push_back 1458 - irr::array. changed allocating routine in push_back
1459 1459
1460 added a new method setAllocStrategy, 1460 added a new method setAllocStrategy,
1461 safe ( used + 1 ), double ( used * 2 + 1) 1461 safe ( used + 1 ), double ( used * 2 + 1)
1462 better default strategies will be implemented 1462 better default strategies will be implemented
1463 1463
1464 - removed binary_search_const 1464 - removed binary_search_const
1465 i added it quite a long time ago, but it doesnt make real sense 1465 i added it quite a long time ago, but it doesnt make real sense
1466 a call to a sort method should happen always. i just wanted to safe 1466 a call to a sort method should happen always. i just wanted to safe
1467 a few cycles.. 1467 a few cycles..
1468 - added binary_search_multi 1468 - added binary_search_multi
1469 searches for a multi-set ( more than 1 entry in the sorted array) 1469 searches for a multi-set ( more than 1 entry in the sorted array)
1470 returns start and end-index 1470 returns start and end-index
1471 1471
1472 - changed some identity matrix settings to use core::IdentityMatrix 1472 - changed some identity matrix settings to use core::IdentityMatrix
1473 1473
1474 - added deletePathFromFilename to generic string functions in coreutil.h and 1474 - added deletePathFromFilename to generic string functions in coreutil.h and
1475 removed from CZipReader and CPakReader 1475 removed from CZipReader and CPakReader
1476 1476
1477 - s32 deserializeAttributes used instead of virtual void deserializeAttributes in 1477 - s32 deserializeAttributes used instead of virtual void deserializeAttributes in
1478 ParticleSystem ( wrong virtual was used) 1478 ParticleSystem ( wrong virtual was used)
1479 1479
1480- strings & Locale 1480- strings & Locale
1481 - started to add locale support 1481 - started to add locale support
1482 - added verify to string 1482 - added verify to string
1483 - added some helper functions 1483 - added some helper functions
1484 1484
1485- XBOX 1485- XBOX
1486 i have access to a XBOX development machine now. I started to compile 1486 i have access to a XBOX development machine now. I started to compile
1487 for the XBOX. Question: Who did the previous implementation?. There 1487 for the XBOX. Question: Who did the previous implementation?. There
1488 is no XBOX-Device inhere. maybe it's forbidden because of using the offical 1488 is no XBOX-Device inhere. maybe it's forbidden because of using the offical
1489 Microsoft XDK. I will implement a native or sdl device based on opendk. 1489 Microsoft XDK. I will implement a native or sdl device based on opendk.
1490 irrlicht compiles without errors on the xbox but can't be used. 1490 irrlicht compiles without errors on the xbox but can't be used.
1491 1491
1492- Windows Mobile 1492- Windows Mobile
1493 reworked a little. added the mobile example to the windows solution for 1493 reworked a little. added the mobile example to the windows solution for
1494 cross development. 1494 cross development.
1495 added maximal 128x128 texture size for windows mobile ( memory issues ) 1495 added maximal 128x128 texture size for windows mobile ( memory issues )
1496 1496
1497- Collision Speed Up 1497- Collision Speed Up
1498 1498
1499 The Collision Speed Up greatly improves with many small static child-nodes 1499 The Collision Speed Up greatly improves with many small static child-nodes
1500 1500
1501 - added COctTreeTriangleSelector::getTriangles for 3dline from user Piraaate 1501 - added COctTreeTriangleSelector::getTriangles for 3dline from user Piraaate
1502 1502
1503 - modified createOctTreeTriangleSelector and createTriangleSelector 1503 - modified createOctTreeTriangleSelector and createTriangleSelector
1504 to allow node == 0, to be added to a meta selector 1504 to allow node == 0, to be added to a meta selector
1505 1505
1506 - CSceneNodeAnimatorCollisionResponse has the same problem as CSceneNodeAnimatorFPS 1506 - CSceneNodeAnimatorCollisionResponse has the same problem as CSceneNodeAnimatorFPS
1507 on first update: 1507 on first update:
1508 Problem. you start setting the map. (setWorld). First update cames 4000 ms later. 1508 Problem. you start setting the map. (setWorld). First update cames 4000 ms later.
1509 The Animator applies the missing force... big problem... 1509 The Animator applies the missing force... big problem...
1510 changed to react on first update like camera. 1510 changed to react on first update like camera.
1511 1511
1512 - add Variable FirstUpdate. if set to true ( on all changes ) 1512 - add Variable FirstUpdate. if set to true ( on all changes )
1513 then position, lasttime, and falling are initialized 1513 then position, lasttime, and falling are initialized
1514 1514
1515 -added #define OCTTREE_USE_HARDWARE in Octree.h 1515 -added #define OCTTREE_USE_HARDWARE in Octree.h
1516 1516
1517 if defined octtree uses internally a derived scene::MeshBuffer which has 1517 if defined octtree uses internally a derived scene::MeshBuffer which has
1518 the possibility to use the Hardware Vertex Buffer for static vertices and 1518 the possibility to use the Hardware Vertex Buffer for static vertices and
1519 dirty indices;-) 1519 dirty indices;-)
1520 1520
1521 if defined OCTTREE_USE_HARDWARE octree uses internally a derived scene::CMeshBuffer 1521 if defined OCTTREE_USE_HARDWARE octree uses internally a derived scene::CMeshBuffer
1522 so it's not just a replacement inside the octree. It also in the OctTreeSceneNode. 1522 so it's not just a replacement inside the octree. It also in the OctTreeSceneNode.
1523 #define OCTTREE_PARENTTEST is also used. It's skip testing on fully outside and takes everything on fully inside 1523 #define OCTTREE_PARENTTEST is also used. It's skip testing on fully outside and takes everything on fully inside
1524 1524
1525 - virtual void ISceneNode::updateAbsolutePosition() 1525 - virtual void ISceneNode::updateAbsolutePosition()
1526 - changed inline CMatrix4<T> CMatrix4<T>::operator*(const CMatrix4<T>& m2) const 1526 - changed inline CMatrix4<T> CMatrix4<T>::operator*(const CMatrix4<T>& m2) const
1527 1527
1528 - changed inline bool CMatrix4<T>::isIdentity() const 1528 - changed inline bool CMatrix4<T>::isIdentity() const
1529 to look first on Translation, because this is the most challenging element 1529 to look first on Translation, because this is the most challenging element
1530 1530
1531 - virtual core::matrix4 getRelativeTransformation() const 1531 - virtual core::matrix4 getRelativeTransformation() const
1532 Hierarchy on Identity-Check 1532 Hierarchy on Identity-Check
1533 1) ->getRelativeTransform -> 9 floating point checks to be passed as Identity 1533 1) ->getRelativeTransform -> 9 floating point checks to be passed as Identity
1534 2) ->isIdentity () -> 16 floating point checks to be passed as Identity 1534 2) ->isIdentity () -> 16 floating point checks to be passed as Identity
1535 1535
1536 - inline void CMatrix4<T>::transformBoxEx(core::aabbox3d<f32>& box) const 1536 - inline void CMatrix4<T>::transformBoxEx(core::aabbox3d<f32>& box) const
1537 added isIdentity() check 1537 added isIdentity() check
1538 1538
1539- changed CSceneNodeAnimatorCollisionResponse 1539- changed CSceneNodeAnimatorCollisionResponse
1540 - added CSceneNodeAnimatorCollisionResponse::setGravity 1540 - added CSceneNodeAnimatorCollisionResponse::setGravity
1541 needed to set the differents Forces for the Animator. for eq. water.. 1541 needed to set the differents Forces for the Animator. for eq. water..
1542 - added CSceneNodeAnimatorCollisionResponse::setAnimateTarget 1542 - added CSceneNodeAnimatorCollisionResponse::setAnimateTarget
1543 - added CSceneNodeAnimatorCollisionResponse::getAnimateTarget 1543 - added CSceneNodeAnimatorCollisionResponse::getAnimateTarget
1544 - changed CSceneNodeAnimatorCollisionResponse::animateNode to react on FirstUpdate 1544 - changed CSceneNodeAnimatorCollisionResponse::animateNode to react on FirstUpdate
1545 - TODO: set Gravity to Physically frame independent values.. 1545 - TODO: set Gravity to Physically frame independent values..
1546 current response uses an frame depdended acceleration vector. 1546 current response uses an frame depdended acceleration vector.
1547 ~9.81 m/s^2 was achieved at around 50 fps with a setting of -0.03 1547 ~9.81 m/s^2 was achieved at around 50 fps with a setting of -0.03
1548 may effect existing application.. 1548 may effect existing application..
1549 1549
1550- SceneNodes 1550- SceneNodes
1551 - CSkyDomeSceneNode 1551 - CSkyDomeSceneNode
1552 moved radius ( default 1000 ) to constructor 1552 moved radius ( default 1000 ) to constructor
1553 added Normals 1553 added Normals
1554 added DebugInfo 1554 added DebugInfo
1555 added Material.ZBuffer, added SceneManager 1555 added Material.ZBuffer, added SceneManager
1556 1556
1557 - CVolumeLightSceneNode: 1557 - CVolumeLightSceneNode:
1558 changed default blending OneTextureBlendgl_src_color gl_src_alpha to 1558 changed default blending OneTextureBlendgl_src_color gl_src_alpha to
1559 EMT_TRANSPARENT_ADD_COLOR ( gl_src_color gl_one ) 1559 EMT_TRANSPARENT_ADD_COLOR ( gl_src_color gl_one )
1560 which gives the same effect on non-transparent-materials. 1560 which gives the same effect on non-transparent-materials.
1561 Following the unspoken guide-line, lowest effect as default 1561 Following the unspoken guide-line, lowest effect as default
1562 1562
1563 - changed SceneNode Skydome from f64 to f32 1563 - changed SceneNode Skydome from f64 to f32
1564 1564
1565 - AnimatedMesh Debug Data: 1565 - AnimatedMesh Debug Data:
1566 mesh normals didn't rotate with the scenenode fixed ( matrix-multiplication order) 1566 mesh normals didn't rotate with the scenenode fixed ( matrix-multiplication order)
1567 1567
1568 - Camera SceneNode setPosition 1568 - Camera SceneNode setPosition
1569 Camera now finally allow to change position and target and updates all 1569 Camera now finally allow to change position and target and updates all
1570 effected animators.. 1570 effected animators..
1571 1571
1572- Device: 1572- Device:
1573 added the current mousebutton state to the Mouse Event 1573 added the current mousebutton state to the Mouse Event
1574 so i need to get the current mouse state from the OS 1574 so i need to get the current mouse state from the OS
1575 1575
1576- GUI 1576- GUI
1577 1577
1578 - CGUIFont: 1578 - CGUIFont:
1579 - added virtual void setInvisibleCharacters( const wchar_t *s ) = 0; 1579 - added virtual void setInvisibleCharacters( const wchar_t *s ) = 0;
1580 define which characters should not be drawn ( send to driver) by the font. 1580 define which characters should not be drawn ( send to driver) by the font.
1581 default: setInvisibleCharacters ( L" " ); 1581 default: setInvisibleCharacters ( L" " );
1582 1582
1583 - added MultiLine rendering 1583 - added MultiLine rendering
1584 should avoid to us CStaticText breaking text in future 1584 should avoid to us CStaticText breaking text in future
1585 1585
1586 - CGUIListBox 1586 - CGUIListBox
1587 - changed Scrollbar LargeStepSize to ItemHeight 1587 - changed Scrollbar LargeStepSize to ItemHeight
1588 which easy enables to scroll line by line 1588 which easy enables to scroll line by line
1589 1589
1590 - CGUIScrollBar 1590 - CGUIScrollBar
1591 - bug: event lost when moving outside the window 1591 - bug: event lost when moving outside the window
1592 - bug: Scrollbar notifyListBox notify when the scrollbar is clicked. 1592 - bug: Scrollbar notifyListBox notify when the scrollbar is clicked.
1593 - changed timed event in draw to OnPostRender 1593 - changed timed event in draw to OnPostRender
1594 1594
1595 - added GUI Image List from Reinhard Ostermeier, modified to work 1595 - added GUI Image List from Reinhard Ostermeier, modified to work
1596 1596
1597 - FileOpenDialog 1597 - FileOpenDialog
1598 changed the static text for the filename to an edit box. 1598 changed the static text for the filename to an edit box.
1599 1599
1600 - changed the interface for addEditBox to match with addStaticText 1600 - changed the interface for addEditBox to match with addStaticText
1601 1601
1602 - changed the interface for addSpinBox to match with addEditBox 1602 - changed the interface for addSpinBox to match with addEditBox
1603 1603
1604 - added MouseWheel to Spinbox 1604 - added MouseWheel to Spinbox
1605 1605
1606 - changed CGUITable CLICK_AREA from 3 to 12 to enable clicking on the visible marker 1606 - changed CGUITable CLICK_AREA from 3 to 12 to enable clicking on the visible marker
1607 1607
1608 - CGUISpritebank 1608 - CGUISpritebank
1609 removed some crashes with empty Sprite banks 1609 removed some crashes with empty Sprite banks
1610 1610
1611 - IGUIScrollBar 1611 - IGUIScrollBar
1612 added SetMin before min was always 0 1612 added SetMin before min was always 0
1613 changed ScrollWheel Direction on horizontal to move right on wheel up, left on wheel down 1613 changed ScrollWheel Direction on horizontal to move right on wheel up, left on wheel down
1614 1614
1615 - IComboBox: added ItemData 1615 - IComboBox: added ItemData
1616 1616
1617 - optimized IsVisible check in IGUIElement::draw 1617 - optimized IsVisible check in IGUIElement::draw
1618 1618
1619- Image Loaders 1619- Image Loaders
1620 - added TGA file type 2 ( grayscale uncompressed ) 1620 - added TGA file type 2 ( grayscale uncompressed )
1621 - added TGA file type (1) 8 Bit indexed color uncompressed 1621 - added TGA file type (1) 8 Bit indexed color uncompressed
1622 1622
1623 ColorConverter: 1623 ColorConverter:
1624 - added convert_B8G8R8toA8R8G8B8 1624 - added convert_B8G8R8toA8R8G8B8
1625 - added convert_B8G8R8A8toA8R8G8B8 1625 - added convert_B8G8R8A8toA8R8G8B8
1626 1626
1627- Media Files 1627- Media Files
1628 - added missing shaders and textures to map-20kdm2. 1628 - added missing shaders and textures to map-20kdm2.
1629 Taken from free implementation 1629 Taken from free implementation
1630 - ball.wav. adjusted DC-Offset, amplified to -4dB, trim cross-zero 1630 - ball.wav. adjusted DC-Offset, amplified to -4dB, trim cross-zero
1631 - impact.wav clip-restoration, trim cross-zero 1631 - impact.wav clip-restoration, trim cross-zero
1632 - added gun.md2, gun.pcx to media-files 1632 - added gun.md2, gun.pcx to media-files
1633 - added new irrlicht logo irrlicht3.png 1633 - added new irrlicht logo irrlicht3.png
1634 1634
1635- OctTree 1635- OctTree
1636 -added 1636 -added
1637 #define OCTTREE_PARENTTEST ( default: disabled ) 1637 #define OCTTREE_PARENTTEST ( default: disabled )
1638 used to leave-out children test if the parent passed a complete frustum. 1638 used to leave-out children test if the parent passed a complete frustum.
1639 plus: leaves out children test 1639 plus: leaves out children test
1640 minus: all edges have to be checked 1640 minus: all edges have to be checked
1641 - added MeshBuffer Hardware Hint Vertex to octtree 1641 - added MeshBuffer Hardware Hint Vertex to octtree
1642 1642
1643- CQuake3ShaderSceneNode: 1643- CQuake3ShaderSceneNode:
1644 - removed function releaseMesh 1644 - removed function releaseMesh
1645 Shader doesn't copy the original mesh anymore ( saving memory ) 1645 Shader doesn't copy the original mesh anymore ( saving memory )
1646 so therefore this (for others often misleading ) function was removed 1646 so therefore this (for others often misleading ) function was removed
1647 - changed constructor to take a (shared) destination meshbuffer for rendering 1647 - changed constructor to take a (shared) destination meshbuffer for rendering
1648 reducing vertex-memory to a half 1648 reducing vertex-memory to a half
1649 - don't copy the original vertices anymore 1649 - don't copy the original vertices anymore
1650 - added deformvertexes autosprite 1650 - added deformvertexes autosprite
1651 - added deformvertexes move 1651 - added deformvertexes move
1652 - added support for RTCW and Raven BSPs ( qmap2 ) 1652 - added support for RTCW and Raven BSPs ( qmap2 )
1653 - added polygonoffset (TODO: not perfect) 1653 - added polygonoffset (TODO: not perfect)
1654 - added added nomipmaps 1654 - added added nomipmaps
1655 - added rgbgen const 1655 - added rgbgen const
1656 - added alphagen 1656 - added alphagen
1657 - added MesBuffer Hardware Hint Vertex/Index to Quake3: static geometry, dynamic indices 1657 - added MesBuffer Hardware Hint Vertex/Index to Quake3: static geometry, dynamic indices
1658 - added Quake3Explorer examples 1658 - added Quake3Explorer examples
1659 - added wave noise 1659 - added wave noise
1660 - added tcmod transform 1660 - added tcmod transform
1661 - added whiteimage 1661 - added whiteimage
1662 - added collision to Quake3Explorer 1662 - added collision to Quake3Explorer
1663 - renamed SMD3QuaterionTag* to SMD3QuaternionTag* ( typo ) 1663 - renamed SMD3QuaterionTag* to SMD3QuaternionTag* ( typo )
1664 - updated quake3:blendfunc 1664 - updated quake3:blendfunc
1665 - added crouch to Quake3Explorer 1665 - added crouch to Quake3Explorer
1666 (modifying the ellipsiodRadius of the camera animator ) 1666 (modifying the ellipsiodRadius of the camera animator )
1667 added crouch to CSceneNodeAnimatorCameraFPS 1667 added crouch to CSceneNodeAnimatorCameraFPS
1668 still problems with stand up and collision 1668 still problems with stand up and collision
1669 - Quake3MapLoader 1669 - Quake3MapLoader
1670 modified memory allocation for faster loading 1670 modified memory allocation for faster loading
1671 - Quake3LoadParam 1671 - Quake3LoadParam
1672 added Parameter to the Mesh-Loader 1672 added Parameter to the Mesh-Loader
1673 - added 1673 - added
1674 The still existing missing caulking of curved surfaces. 1674 The still existing missing caulking of curved surfaces.
1675 using round in the coordinates doesn't solve the problem. 1675 using round in the coordinates doesn't solve the problem.
1676 but for the demo bsp mesh it solves the problem... (luck) 1676 but for the demo bsp mesh it solves the problem... (luck)
1677 so for now it's switchable. 1677 so for now it's switchable.
1678 TJUNCTION_SOLVER_ROUND 1678 TJUNCTION_SOLVER_ROUND
1679 default:off 1679 default:off
1680 1680
1681- BurningVideo 1681- BurningVideo
1682 - pushed BurningsVideo to 0.40 1682 - pushed BurningsVideo to 0.40
1683 - added blendfunc gl_one_minus_dst_alpha gl_one 1683 - added blendfunc gl_one_minus_dst_alpha gl_one
1684 - added blendfunc gl_dst_color gl_zero 1684 - added blendfunc gl_dst_color gl_zero
1685 - added blendfunc gl_dst_color src_alpha 1685 - added blendfunc gl_dst_color src_alpha
1686 - modified AlphaChannel_Ref renderer to support alpha test lessequal 1686 - modified AlphaChannel_Ref renderer to support alpha test lessequal
1687 - addded 32 Bit Index Buffer 1687 - addded 32 Bit Index Buffer
1688 - added sourceRect/destRect check to 2D-Blitter ( slower, but resolves crash ) 1688 - added sourceRect/destRect check to 2D-Blitter ( slower, but resolves crash )
1689 - added setTextureCreationFlag video::ETCF_ALLOW_NON_POWER_2 1689 - added setTextureCreationFlag video::ETCF_ALLOW_NON_POWER_2
1690 Burning checks this flag and when set, it bypasses the power2 size check, 1690 Burning checks this flag and when set, it bypasses the power2 size check,
1691 which is necessary on 3D but can be avoided on 2D. 1691 which is necessary on 3D but can be avoided on 2D.
1692 used on fonts automatically. 1692 used on fonts automatically.
1693 - added Support for Destination Alpha 1693 - added Support for Destination Alpha
1694 1694
1695- Direct3D8 1695- Direct3D8
1696 - added 32 Bit Index Buffer 1696 - added 32 Bit Index Buffer
1697 - compile for XBOX 1697 - compile for XBOX
1698 1698
1699- Direct3D9 1699- Direct3D9
1700 - fixed crash on RTT Textures DepthBuffer freed twice. 1700 - fixed crash on RTT Textures DepthBuffer freed twice.
1701 added deleteAllTextures to destructor 1701 added deleteAllTextures to destructor
1702 1702
1703- NullDriver 1703- NullDriver
1704 - removeallTextures. added setMaterial ( SMaterial() ) to clean pointers for freed textures 1704 - removeallTextures. added setMaterial ( SMaterial() ) to clean pointers for freed textures
1705 1705
1706 - ISceneCollisionManager::getSceneNodeAndCollisionPointFromRay() allows selection by BB and triangle on a heirarchy of scene nodes. 1706 - ISceneCollisionManager::getSceneNodeAndCollisionPointFromRay() allows selection by BB and triangle on a heirarchy of scene nodes.
1707 1707
1708 - Triangle selectors created from animated mesh scene nodes will update themselves as required to stay in sync with the node. 1708 - Triangle selectors created from animated mesh scene nodes will update themselves as required to stay in sync with the node.
1709 1709
1710 - IVideoDriver has methods to enumerate the available image loaders and writers. 1710 - IVideoDriver has methods to enumerate the available image loaders and writers.
1711 1711
1712 - Octtree scene nodes are now IMeshSceneNodes rather than ISceneNodes, and so you can call getMesh() on them. 1712 - Octtree scene nodes are now IMeshSceneNodes rather than ISceneNodes, and so you can call getMesh() on them.
1713 1713
1714 - New scene parameter B3D_LOADER_IGNORE_MIPMAP_FLAG to ignore the often missing mipmap flag in b3d files. If this parameter is true, the old pre Irrlicht-1.5 behavior is restored. 1714 - New scene parameter B3D_LOADER_IGNORE_MIPMAP_FLAG to ignore the often missing mipmap flag in b3d files. If this parameter is true, the old pre Irrlicht-1.5 behavior is restored.
1715 1715
1716 - Added Mipmap LOD Bias attribute to MaterialLayer. 1716 - Added Mipmap LOD Bias attribute to MaterialLayer.
1717 1717
1718 - Added ColorMask support to selectively disable color planes on rendering. 1718 - Added ColorMask support to selectively disable color planes on rendering.
1719 1719
1720 - Added support for all available depth test functions. 1720 - Added support for all available depth test functions.
1721 1721
1722 - Add an outNode to getCollisionPoint() that returns the scene node that was hit, as well as the triangle. 1722 - Add an outNode to getCollisionPoint() that returns the scene node that was hit, as well as the triangle.
1723 1723
1724 - Initial support for Alpha To Coverage, needs some more fixing until it works on all supported platforms. 1724 - Initial support for Alpha To Coverage, needs some more fixing until it works on all supported platforms.
1725 1725
1726 - Added support for Anti-Aliasing modes per material 1726 - Added support for Anti-Aliasing modes per material
1727 1727
1728 - Added an ICollisionCallback to ISceneNodeAnimatorCollisionResponse, to inform the application that a collision has occured. Thanks to garrittg for this. 1728 - Added an ICollisionCallback to ISceneNodeAnimatorCollisionResponse, to inform the application that a collision has occured. Thanks to garrittg for this.
1729 1729
1730 - Added an startPosition parameter to createFlyCircleAnimator() to allow starting the animator at any position on the circle. 1730 - Added an startPosition parameter to createFlyCircleAnimator() to allow starting the animator at any position on the circle.
1731 1731
1732 - Many uses of dimension2d<s32> changed to dimension2d<u32>, including IImage, ITexture and screen dimensions. You will have to change (at least) createDevice() calls to use dimension2d<u32> 1732 - Many uses of dimension2d<s32> changed to dimension2d<u32>, including IImage, ITexture and screen dimensions. You will have to change (at least) createDevice() calls to use dimension2d<u32>
1733 1733
1734 - Added Doublebuffer flag to SIrrCreationParameters, for better finetuning 1734 - Added Doublebuffer flag to SIrrCreationParameters, for better finetuning
1735 1735
1736 - Added Stereo-Framebuffer support for professional OpenGL cards 1736 - Added Stereo-Framebuffer support for professional OpenGL cards
1737 1737
1738 - Added IFileSystem::createMemoryWriteFile() to allow creation of an IWriteFile interface that uses an application supplied memory buffer. 1738 - Added IFileSystem::createMemoryWriteFile() to allow creation of an IWriteFile interface that uses an application supplied memory buffer.
1739 1739
1740 - Added an IVideoDriver::writeImageToFile() overload that can take an IWriteFile interface. 1740 - Added an IVideoDriver::writeImageToFile() overload that can take an IWriteFile interface.
1741 1741
1742 - (Internal) Replaced CMemoryReadFile with CMemoryFile, that also implements an IWriteFile interface. 1742 - (Internal) Replaced CMemoryReadFile with CMemoryFile, that also implements an IWriteFile interface.
1743 1743
1744 - Added an optional light manager to the scene manager to allow the user application to turn lights on and off during scene rendering. This can be used to produce "zoned" lighting. See example 20.ManagedLights. 1744 - Added an optional light manager to the scene manager to allow the user application to turn lights on and off during scene rendering. This can be used to produce "zoned" lighting. See example 20.ManagedLights.
1745 1745
1746 - Added a method to flip the Y movement of the FPS camera. 1746 - Added a method to flip the Y movement of the FPS camera.
1747 1747
1748 - The Anisotropy filter can now be set to the AF value per texture layer. So no forced MAX_ANISOTROPY anymore. .irr files will probably fail, though. 1748 - The Anisotropy filter can now be set to the AF value per texture layer. So no forced MAX_ANISOTROPY anymore. .irr files will probably fail, though.
1749 1749
1750 - AntiAlias parameter in SIrrCreationParameters is now an u8 value specifying the multisampling level (0 for disabled, 4,6,8, and others for anti-aliasing) 1750 - AntiAlias parameter in SIrrCreationParameters is now an u8 value specifying the multisampling level (0 for disabled, 4,6,8, and others for anti-aliasing)
1751 1751
1752 - D3D devices use DISCARD for windowed renderbuffers now, can be faster. 1752 - D3D devices use DISCARD for windowed renderbuffers now, can be faster.
1753 1753
1754 - Changed behavior of PixelBlend16() / PixelBlend16_simd() so that they treat the 1 bit alpha of the source pixel as boolean, i.e. they draw either the source pixel, or the destination pixel, rather than "blending". (Issue revealed by the fix to IVideoDriver::makeColorKeyTexture()). 1754 - Changed behavior of PixelBlend16() / PixelBlend16_simd() so that they treat the 1 bit alpha of the source pixel as boolean, i.e. they draw either the source pixel, or the destination pixel, rather than "blending". (Issue revealed by the fix to IVideoDriver::makeColorKeyTexture()).
1755 1755
1756 - IVideoDriver::makeColorKeyTexture() bug fixed so that only alphas, not whole texel colors, are zeroed. An optional parameter allows using the old (buggy) behavior for backwards compatibility. 1756 - IVideoDriver::makeColorKeyTexture() bug fixed so that only alphas, not whole texel colors, are zeroed. An optional parameter allows using the old (buggy) behavior for backwards compatibility.
1757 1757
1758 - position2d is now a synonym for vector2d. position2d is therefore marked as deprecated, although it's unlikely to be removed. 1758 - position2d is now a synonym for vector2d. position2d is therefore marked as deprecated, although it's unlikely to be removed.
1759 1759
1760 - ISceneNodeAnimator now has a hasFinished() method. 1760 - ISceneNodeAnimator now has a hasFinished() method.
1761 1761
1762 - ISceneNodeAnimatorCollisionResponse exposes the target node. Setting the node again resets the last position, allowing the node to be teleported. 1762 - ISceneNodeAnimatorCollisionResponse exposes the target node. Setting the node again resets the last position, allowing the node to be teleported.
1763 1763
1764 - Add a hitPosition out parameter to ISceneCollisionManager::getCollisionResultPosition() - this is a (small) API breaking change. 1764 - Add a hitPosition out parameter to ISceneCollisionManager::getCollisionResultPosition() - this is a (small) API breaking change.
1765 1765
1766------------------------------------- 1766-------------------------------------
1767Changes in version 1.5.2 (16.12.2009) 1767Changes in version 1.5.2 (16.12.2009)
1768 1768
1769 - Properly check boundaries in getFont and setFont. 1769 - Properly check boundaries in getFont and setFont.
1770 1770
1771 - Reinit values in the driver when scene manager is cleared. 1771 - Reinit values in the driver when scene manager is cleared.
1772 1772
1773 - Normals handling fixed in createMeshWithTangents, existing normals are not always destroyed now. 1773 - Normals handling fixed in createMeshWithTangents, existing normals are not always destroyed now.
1774 1774
1775 - Fix terrain smoothing, bug found by loverlinfish 1775 - Fix terrain smoothing, bug found by loverlinfish
1776 1776
1777 - SOLARIS recognition removed. Please specify the platform define manually. This allows for compilation under sparc/Linux and sparc/Solaris 1777 - SOLARIS recognition removed. Please specify the platform define manually. This allows for compilation under sparc/Linux and sparc/Solaris
1778 1778
1779 - Some uninitialized variables fixed 1779 - Some uninitialized variables fixed
1780 1780
1781 - FreeBSD joystick support added (for Debian package) 1781 - FreeBSD joystick support added (for Debian package)
1782 1782
1783 - Fix cursor problems found by buffer and by rvl2 as described in http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=34823&highlight= 1783 - Fix cursor problems found by buffer and by rvl2 as described in http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=34823&highlight=
1784 1784
1785 - OSX/XCode updates 1785 - OSX/XCode updates
1786 1786
1787 - MS3D loader bug fixed 1787 - MS3D loader bug fixed
1788 1788
1789 - Float parse bug fixed 1789 - Float parse bug fixed
1790 1790
1791------------------------------------- 1791-------------------------------------
1792Changes in version 1.5.1 (05.08.2009) 1792Changes in version 1.5.1 (05.08.2009)
1793 1793
1794 - Make sure a missing font does not corrupt the skin. 1794 - Make sure a missing font does not corrupt the skin.
1795 1795
1796 - Fix getAngle in vector2d as suggested by xray. This has only a minor impact on s32 vectors. 1796 - Fix getAngle in vector2d as suggested by xray. This has only a minor impact on s32 vectors.
1797 1797
1798 - bugfix: CGUIFont::getCharacterFromPos regards now kerning (found by Arras) 1798 - bugfix: CGUIFont::getCharacterFromPos regards now kerning (found by Arras)
1799 1799
1800 - Add support for range fog in some OpenGL versions. 1800 - Add support for range fog in some OpenGL versions.
1801 1801
1802 - Fix for shadow volume removal, submitted by vitek. 1802 - Fix for shadow volume removal, submitted by vitek.
1803 1803
1804 - Avoid using X11 autorepeat to deal with broken X11 versions. 1804 - Avoid using X11 autorepeat to deal with broken X11 versions.
1805 1805
1806 - Speculars are properly exported into mtl files now, instead of corrupting them. 1806 - Speculars are properly exported into mtl files now, instead of corrupting them.
1807 1807
1808 - Binary type loading in attributes fixed. 1808 - Binary type loading in attributes fixed.
1809 1809
1810 - bugfix: Use make_lower throughout for spritebank filenames (found and patched by Ion Dune) 1810 - bugfix: Use make_lower throughout for spritebank filenames (found and patched by Ion Dune)
1811 1811
1812 - STL loader fixed: Right-handedness corrected, normals and bboxes are correctly added now. 1812 - STL loader fixed: Right-handedness corrected, normals and bboxes are correctly added now.
1813 1813
1814 - bugfix: CUnZipReader::openFile no longer returns true for empty files. Corresponding test added. 1814 - bugfix: CUnZipReader::openFile no longer returns true for empty files. Corresponding test added.
1815 1815
1816 - Big endian issues in .x loader fixed. 1816 - Big endian issues in .x loader fixed.
1817 1817
1818 - HSLColor methods repaired. 1818 - HSLColor methods repaired.
1819 1819
1820 - copyToScaling fixed. 1820 - copyToScaling fixed.
1821 1821
1822 - Fixed problem with highlighting menus when mouse was outside sub-menu area. 1822 - Fixed problem with highlighting menus when mouse was outside sub-menu area.
1823 1823
1824 - bugfix (2796207): menu acted (wrongly) on left-click down instead of left-click up. 1824 - bugfix (2796207): menu acted (wrongly) on left-click down instead of left-click up.
1825 1825
1826 - bswap16 fallback macro fixed 1826 - bswap16 fallback macro fixed
1827 1827
1828 - getBaseName fixed to work correct with dots in filenames. 1828 - getBaseName fixed to work correct with dots in filenames.
1829 1829
1830 - static method isDriverSupported allows for simple check of available drivers. 1830 - static method isDriverSupported allows for simple check of available drivers.
1831 1831
1832 - Some defines added to check for the Irrlicht version of the library. 1832 - Some defines added to check for the Irrlicht version of the library.
1833 1833
1834 - Make sure all renderstates are properly initialized 1834 - Make sure all renderstates are properly initialized
1835 1835
1836 - Wrong size for main depth buffer fixed. 1836 - Wrong size for main depth buffer fixed.
1837 1837
1838 - Fix 3ds shininess to the allowed range. 1838 - Fix 3ds shininess to the allowed range.
1839 1839
1840 - Fix loading of Collada files from irrEdit 1.2 1840 - Fix loading of Collada files from irrEdit 1.2
1841 1841
1842 - Remove texture pointers after texture clear. 1842 - Remove texture pointers after texture clear.
1843 1843
1844 - WindowsCE pathnames fixed. 1844 - WindowsCE pathnames fixed.
1845 1845
1846 - Some virtuals are now overridden as expected. 1846 - Some virtuals are now overridden as expected.
1847 1847
1848 - Incomplete FBOs are properly signalled now 1848 - Incomplete FBOs are properly signalled now
1849 1849
1850 - Update to libpng 1.2.35, fixed issues on 64bit machines with system's libpng. 1850 - Update to libpng 1.2.35, fixed issues on 64bit machines with system's libpng.
1851 1851
1852 - Fixed wrong grab/drop in setOverrideFont 1852 - Fixed wrong grab/drop in setOverrideFont
1853 1853
1854 - Added draw2dRectOutline 1854 - Added draw2dRectOutline
1855 1855
1856 - rectf and recti added. 1856 - rectf and recti added.
1857 1857
1858 - Fix ALPHA_CHANNEL_REF to a fixed check for alpha==127 as expected. 1858 - Fix ALPHA_CHANNEL_REF to a fixed check for alpha==127 as expected.
1859 1859
1860 - Fixed OSX device bug where screen size was not set in fullscreen mode. 1860 - Fixed OSX device bug where screen size was not set in fullscreen mode.
1861 1861
1862 - cursor setVisible changed to be called less often. 1862 - cursor setVisible changed to be called less often.
1863 1863
1864 - OpenGL version calculation fixed. 1864 - OpenGL version calculation fixed.
1865 1865
1866 - OSX device now supports shift and ctrl keys. 1866 - OSX device now supports shift and ctrl keys.
1867 1867
1868 - Fixed ambient light issues in burningsvideo. 1868 - Fixed ambient light issues in burningsvideo.
1869 1869
1870 - device reset for d3d fixed when using VBOs. 1870 - device reset for d3d fixed when using VBOs.
1871 1871
1872 - Fix dimension2d += 1872 - Fix dimension2d +=
1873 1873
1874 - MD2 mesh loader: Now uses much less memory, reduced number of allocations when loading meshes. 1874 - MD2 mesh loader: Now uses much less memory, reduced number of allocations when loading meshes.
1875 1875
1876 - OpenGL render state (texture wrongly cached) fixed. 1876 - OpenGL render state (texture wrongly cached) fixed.
1877 1877
1878 - Fixed animator removal. 1878 - Fixed animator removal.
1879 1879
1880 - Checnged collision checks for children of invisible elements to also be ignored (as they're actually invisible due to inheritance). 1880 - Checnged collision checks for children of invisible elements to also be ignored (as they're actually invisible due to inheritance).
1881 1881
1882 - Fix terrain to use 32bit only when necessary, make terrain use hw buffers. Heightmap loading and height calculation fixed. Visibility and LOD calculations updated. 1882 - Fix terrain to use 32bit only when necessary, make terrain use hw buffers. Heightmap loading and height calculation fixed. Visibility and LOD calculations updated.
1883 1883
1884 - Some mem leaks fixed 1884 - Some mem leaks fixed
1885 1885
1886 - FPS camera resets the cursor better 1886 - FPS camera resets the cursor better
1887 1887
1888----------------------------------- 1888-----------------------------------
1889Changes in version 1.5 (15.12.2008) 1889Changes in version 1.5 (15.12.2008)
1890 1890
1891 - Construction calls for FPS camera changed to take speed in units/milliseconds, just as the setSpeed method does. 1891 - Construction calls for FPS camera changed to take speed in units/milliseconds, just as the setSpeed method does.
1892 1892
1893 - Code::Blocks workspaces added. C::B projects (using gcc) now output to /lib/gcc and /bin/gcc, when built on either Windows or Linux. 1893 - Code::Blocks workspaces added. C::B projects (using gcc) now output to /lib/gcc and /bin/gcc, when built on either Windows or Linux.
1894 1894
1895 - Added a test suite in the /tests directory. This can be used to perform regression tests, and should be updated with new tests to verify fixes or validate new features. 1895 - Added a test suite in the /tests directory. This can be used to perform regression tests, and should be updated with new tests to verify fixes or validate new features.
1896 1896
1897 - Changed the preferred way of altering light node's radius: Use the new member methods of ILightSceneNode instead of directly modifying the SLight structure. 1897 - Changed the preferred way of altering light node's radius: Use the new member methods of ILightSceneNode instead of directly modifying the SLight structure.
1898 1898
1899 - Changed the initial attenuation back to (0,1/radius,0). To override this value simply change the attenuation in the SLight (lightnode->getLightData().Attenuation.set(x,y,z)) 1899 - Changed the initial attenuation back to (0,1/radius,0). To override this value simply change the attenuation in the SLight (lightnode->getLightData().Attenuation.set(x,y,z))
1900 1900
1901 - Dirty fix for OSX device setResizable and a bug fix to do with resizing the device. 1901 - Dirty fix for OSX device setResizable and a bug fix to do with resizing the device.
1902 1902
1903 - Terrain heightmap and texture were flipped in order to draw them as expected (looking onto the terrain from high above will just look like the actual texture/heightmap). 1903 - Terrain heightmap and texture were flipped in order to draw them as expected (looking onto the terrain from high above will just look like the actual texture/heightmap).
1904 1904
1905 - Significant internal change to the way that FPS camera jump speed and collision response animator gravity interact. The behavior is now much more realistic, but it will require you to adjust your jump speed and gravity. 1905 - Significant internal change to the way that FPS camera jump speed and collision response animator gravity interact. The behavior is now much more realistic, but it will require you to adjust your jump speed and gravity.
1906 1906
1907 - Skybox won't be culled anymore by nearplane or farplane. 1907 - Skybox won't be culled anymore by nearplane or farplane.
1908 1908
1909 - BBoxes of animated meshes (skinned meshes) are updated again. 1909 - BBoxes of animated meshes (skinned meshes) are updated again.
1910 1910
1911 - Lost devices (as found with D3D) are properly handled now. So the screen can be resized or minimized without crashing the app. 1911 - Lost devices (as found with D3D) are properly handled now. So the screen can be resized or minimized without crashing the app.
1912 1912
1913 - Renamed IGUIElement::setRelativePosition(const core::rect<f32>& r) to IGUIElement::setRelativePositionProportional(), as it has radically different functionality from setRelativePosition(const core::rect<s32>& r) 1913 - Renamed IGUIElement::setRelativePosition(const core::rect<f32>& r) to IGUIElement::setRelativePositionProportional(), as it has radically different functionality from setRelativePosition(const core::rect<s32>& r)
1914 1914
1915 - Added IGUIElement::setRelativePosition(const core::position2di & position) to set a new position while retaining the existing height and width. 1915 - Added IGUIElement::setRelativePosition(const core::position2di & position) to set a new position while retaining the existing height and width.
1916 1916
1917 - Many Collada fixes. z_up coords are supported now, texture coords are properly loaded. Transparency is supported. 1917 - Many Collada fixes. z_up coords are supported now, texture coords are properly loaded. Transparency is supported.
1918 1918
1919 - Camera scene node rotation and target can now be bound together so that changing one automatically changes the other (as the FPS camera has always done). See ICameraSceneNode::bindTargetAndRotation() 1919 - Camera scene node rotation and target can now be bound together so that changing one automatically changes the other (as the FPS camera has always done). See ICameraSceneNode::bindTargetAndRotation()
1920 1920
1921 - Removed the extra libpng files for OSX. OSX now also uses the default libpng. 1921 - Removed the extra libpng files for OSX. OSX now also uses the default libpng.
1922 1922
1923 - Enhanced PCX support with some more color formats and write support. 1923 - Enhanced PCX support with some more color formats and write support.
1924 1924
1925 - Fixed LMTS problems with extra data in files. 1925 - Fixed LMTS problems with extra data in files.
1926 1926
1927 - Removed VS6 .dsw / .dsp project files - VS6 is no longer supported. 1927 - Removed VS6 .dsw / .dsp project files - VS6 is no longer supported.
1928 1928
1929 - Particles can be scaled during animations. Particle scaling needs to happen in the emitter now, instead of in the Particle system scene node. Deprecation methods will guide the user. 1929 - Particles can be scaled during animations. Particle scaling needs to happen in the emitter now, instead of in the Particle system scene node. Deprecation methods will guide the user.
1930 1930
1931 - ISceneNode::setParent and addChild now updates node SceneManager pointers if the node was from another SceneManager. 1931 - ISceneNode::setParent and addChild now updates node SceneManager pointers if the node was from another SceneManager.
1932 1932
1933 - Basic support for joystick input events on Windows, Linux, SDL and OSX. Tested with wired Logitech and Thrustmaster wired controllers and XBox 360 wireless controller ( http://tattiebogle.net/index.php/ProjectRoot/Xbox360Controller/OsxDriver ) 1933 - Basic support for joystick input events on Windows, Linux, SDL and OSX. Tested with wired Logitech and Thrustmaster wired controllers and XBox 360 wireless controller ( http://tattiebogle.net/index.php/ProjectRoot/Xbox360Controller/OsxDriver )
1934 1934
1935 - Fixed scaled octree nodes being incorrectly frustum culled. 1935 - Fixed scaled octree nodes being incorrectly frustum culled.
1936 1936
1937 - FSAA under OpenGL and Win32 added. Now all hw drivers and platforms should support it. 1937 - FSAA under OpenGL and Win32 added. Now all hw drivers and platforms should support it.
1938 1938
1939 - Unlimited RTT fix for D3D systems. Depth buffers are now shared if possible, otherwise a new depth buffer is generated. In order to save VidMem one should create RTTs starting with the largest one. 1939 - Unlimited RTT fix for D3D systems. Depth buffers are now shared if possible, otherwise a new depth buffer is generated. In order to save VidMem one should create RTTs starting with the largest one.
1940 1940
1941 - Avoid RTTs with nonFBO-support under OpenGL which are larger than the screen. Since we rely on rendering into textures in this case we need to clamp the size by the screensize. 1941 - Avoid RTTs with nonFBO-support under OpenGL which are larger than the screen. Since we rely on rendering into textures in this case we need to clamp the size by the screensize.
1942 1942
1943 - Fixes for getAbsoluteFilename under Linux in order to return a filename instead of en empty string in case the file doesn't exist. 1943 - Fixes for getAbsoluteFilename under Linux in order to return a filename instead of en empty string in case the file doesn't exist.
1944 1944
1945 - Use absolute path names when creating / finding textures. 1945 - Use absolute path names when creating / finding textures.
1946 1946
1947 - Font tool implementation for Linux with xft, by Neil Burlock. 1947 - Font tool implementation for Linux with xft, by Neil Burlock.
1948 1948
1949 - Support for normals and UV coords from DeclData in .x files. 1949 - Support for normals and UV coords from DeclData in .x files.
1950 1950
1951 - Modified line2d<T>::intersectWith() to cover more cases. 1951 - Modified line2d<T>::intersectWith() to cover more cases.
1952 1952
1953 - Added IVideoDriver::drawPixel(). 1953 - Added IVideoDriver::drawPixel().
1954 1954
1955 - Moved the window pointer from endScene to beginScene, as this is required for OpenGL support of external window pointers. 1955 - Moved the window pointer from endScene to beginScene, as this is required for OpenGL support of external window pointers.
1956 1956
1957 - Fix for terrain culling. 1957 - Fix for terrain culling.
1958 1958
1959 - Added minimize button to win32 window (if resizable) 1959 - Added minimize button to win32 window (if resizable)
1960 1960
1961 - Major API change: RTTs are now created via addRenderTargetTexture instead of createRenderTargetTexture, which allows to retrieve them from the texture cache, but also changes the way of removing the RTTs, and especially one must not drop the pointer anymore. 1961 - Major API change: RTTs are now created via addRenderTargetTexture instead of createRenderTargetTexture, which allows to retrieve them from the texture cache, but also changes the way of removing the RTTs, and especially one must not drop the pointer anymore.
1962 1962
1963 - WindowsCE-Bugfix 1963 - WindowsCE-Bugfix
1964 1964
1965 - disableFeature can be used to override feature support of the video driver. 1965 - disableFeature can be used to override feature support of the video driver.
1966 1966
1967 - draw2DImage can now also handle RTTs under OpenGL (which were flipped before). 1967 - draw2DImage can now also handle RTTs under OpenGL (which were flipped before).
1968 1968
1969 - Ogre mesh format fixes for proper texture support. 1969 - Ogre mesh format fixes for proper texture support.
1970 1970
1971 - Added .obj mesh writer. 1971 - Added .obj mesh writer.
1972 1972
1973 - Some core::string constructors made explicit to avoid unintended conversions. Just add core::stringc() or core::stringw() around the old code to avoid warnings. 1973 - Some core::string constructors made explicit to avoid unintended conversions. Just add core::stringc() or core::stringw() around the old code to avoid warnings.
1974 1974
1975 - IdentityMatrix is now a properly defined global, with external visibility on all platforms. 1975 - IdentityMatrix is now a properly defined global, with external visibility on all platforms.
1976 1976
1977 - Bugfix for context releases with glx 1.3 on error. 1977 - Bugfix for context releases with glx 1.3 on error.
1978 1978
1979 - Removed constraints for sizes of the terrain scene node. 1979 - Removed constraints for sizes of the terrain scene node.
1980 1980
1981 - Support for 32bit indices in a special MeshBuffer class. 1981 - Support for 32bit indices in a special MeshBuffer class.
1982 1982
1983 - isBetweenPoints return true now even for the begin and end points, i.e. line segments are now including their start and end. 1983 - isBetweenPoints return true now even for the begin and end points, i.e. line segments are now including their start and end.
1984 1984
1985 - Fix XML reader creation for non-existing files and invalid callbacks. 1985 - Fix XML reader creation for non-existing files and invalid callbacks.
1986 1986
1987 - Changed interpretation of MaterialTypeParam==0 in transparent materials. Now it's consistent with all other values, but one has to set the value to 0.5 to get the old behavior (slightly faster rendering, but no smooth borders) 1987 - Changed interpretation of MaterialTypeParam==0 in transparent materials. Now it's consistent with all other values, but one has to set the value to 0.5 to get the old behavior (slightly faster rendering, but no smooth borders)
1988 1988
1989 - Replaced transformBox by transformBoxEx in some internal methods to avoid major malfunction of the transformations. 1989 - Replaced transformBox by transformBoxEx in some internal methods to avoid major malfunction of the transformations.
1990 1990
1991 - Fix use of zip file inside zip files. 1991 - Fix use of zip file inside zip files.
1992 1992
1993 - Avoid loading textures which are not used by the mesh in b3d loader. 1993 - Avoid loading textures which are not used by the mesh in b3d loader.
1994 1994
1995 - Added scaleTCoords methods to MeshManipulator 1995 - Added scaleTCoords methods to MeshManipulator
1996 1996
1997 - Enable use of other meshes for shadow mesh generation, can be used to speed up shadow generation and rendering for complex meshes. Patch based on a version by tonic. 1997 - Enable use of other meshes for shadow mesh generation, can be used to speed up shadow generation and rendering for complex meshes. Patch based on a version by tonic.
1998 1998
1999 - Fixed usage of SIrrCreationParameters struct, which dind't have copy constructor and assignment operator anymore, since the Irrlicht version string was made const. 1999 - Fixed usage of SIrrCreationParameters struct, which dind't have copy constructor and assignment operator anymore, since the Irrlicht version string was made const.
2000 2000
2001 - New glext.h (version 41) and glxext.h (version 20) supporting OpenGL 3.0 2001 - New glext.h (version 41) and glxext.h (version 20) supporting OpenGL 3.0
2002 2002
2003 - Added support for read-only locking of textures. Can speed up those calls. 2003 - Added support for read-only locking of textures. Can speed up those calls.
2004 2004
2005 - Added support for locking RTTs under OpenGL. 2005 - Added support for locking RTTs under OpenGL.
2006 2006
2007 - Implementation of UserData events from system events. 2007 - Implementation of UserData events from system events.
2008 2008
2009 - ICameraSceneNode::setIsOrthogonal replaced by a parameter to setProjectionMatrix. 2009 - ICameraSceneNode::setIsOrthogonal replaced by a parameter to setProjectionMatrix.
2010 2010
2011 - All meshbuffers are now dynamically allocated to avoid problems with grabbed buffers, which may be deleted before the last drop happens (due to static memory allocation). 2011 - All meshbuffers are now dynamically allocated to avoid problems with grabbed buffers, which may be deleted before the last drop happens (due to static memory allocation).
2012 2012
2013 - Enhanced scene graph traversal with example from rogerborg. 2013 - Enhanced scene graph traversal with example from rogerborg.
2014 2014
2015 - FPS camera disabling of event receiver works better now. 2015 - FPS camera disabling of event receiver works better now.
2016 2016
2017 - scene deserialization allows for a user defined callback after a new scene node is created. 2017 - scene deserialization allows for a user defined callback after a new scene node is created.
2018 2018
2019 - Fixed tangent mesh loading from .irrmesh files. 2019 - Fixed tangent mesh loading from .irrmesh files.
2020 2020
2021 - OpenGL clamp modes are now properly set. 2021 - OpenGL clamp modes are now properly set.
2022 2022
2023 - IMeshManipulator::transformMesh renamed to transform, also supports meshbuffers now. 2023 - IMeshManipulator::transformMesh renamed to transform, also supports meshbuffers now.
2024 scaleMesh renamed to scale, supports meshbuffers as well. 2024 scaleMesh renamed to scale, supports meshbuffers as well.
2025 2025
2026 - vector3d::rotationToDirection added. 2026 - vector3d::rotationToDirection added.
2027 2027
2028 - New mesh generators for cone and cylinder. 2028 - New mesh generators for cone and cylinder.
2029 2029
2030 - Hardware accelerated Vertex and Index Buffer support finally integrated into Irrlicht. Thanks to a resource handling idea by Klasker and the almost immediate implementation by Luke, Irrlicht now supports VBOs under OpenGL and D3D. 2030 - Hardware accelerated Vertex and Index Buffer support finally integrated into Irrlicht. Thanks to a resource handling idea by Klasker and the almost immediate implementation by Luke, Irrlicht now supports VBOs under OpenGL and D3D.
2031 Hardware buffers make rendering the same vertices much faster. To use this feature with a mesh, simply set a usage type via MeshBuffer->setHardwareMappingHint(scene::EHM_STATIC). The driver will upload the vertices and indices on the next draw and reuse this information without the need to upload it each frame. 2031 Hardware buffers make rendering the same vertices much faster. To use this feature with a mesh, simply set a usage type via MeshBuffer->setHardwareMappingHint(scene::EHM_STATIC). The driver will upload the vertices and indices on the next draw and reuse this information without the need to upload it each frame.
2032 Vertex and Index buffers can also be updated separately, which is e.g. useful for the terrain node's LOD. 2032 Vertex and Index buffers can also be updated separately, which is e.g. useful for the terrain node's LOD.
2033 2033
2034 - Changed FBO creation according to Nadro's patch. Seems to have zbuffer problems currently. 2034 - Changed FBO creation according to Nadro's patch. Seems to have zbuffer problems currently.
2035 2035
2036 - Update to libpng 1.2.29 2036 - Update to libpng 1.2.29
2037 2037
2038 - Compiler flag for PerfHUD support added. 2038 - Compiler flag for PerfHUD support added.
2039 2039
2040 - recalculateNormals and tangent space creation enhancements by ryanclark. 2040 - recalculateNormals and tangent space creation enhancements by ryanclark.
2041 2041
2042 - Added getColorFormat methods for device and driver, returning the color format of the device's window and the driver's framebuffer. 2042 - Added getColorFormat methods for device and driver, returning the color format of the device's window and the driver's framebuffer.
2043 2043
2044 - Added isFullscreen method. 2044 - Added isFullscreen method.
2045 2045
2046 - Added isWindowFocused and isWindowMinimized methods. 2046 - Added isWindowFocused and isWindowMinimized methods.
2047 2047
2048 - Screenshots are now always made from the frontbuffer, so always the last completely rendered image is captured. However, overlapping windows may corrupt those parts of the screenshot (as was previously happening with d3d already). 2048 - Screenshots are now always made from the frontbuffer, so always the last completely rendered image is captured. However, overlapping windows may corrupt those parts of the screenshot (as was previously happening with d3d already).
2049 2049
2050 - New device creation parameter to disable Irrlicht's system event handling. 2050 - New device creation parameter to disable Irrlicht's system event handling.
2051 2051
2052 - New device creation parameter to specify depth bits. 2052 - New device creation parameter to specify depth bits.
2053 2053
2054 - New device creation parameter to request alpha channel in framebuffer. 2054 - New device creation parameter to request alpha channel in framebuffer.
2055 2055
2056 - Draw2DImage methods under OpenGL now also handle RTTs correctly. 2056 - Draw2DImage methods under OpenGL now also handle RTTs correctly.
2057 2057
2058 - Fixed RTT bug which lead to strangely clamped textures. 2058 - Fixed RTT bug which lead to strangely clamped textures.
2059 2059
2060 - Speed improvement for screenshots on some Intel cards under OpenGL. 2060 - Speed improvement for screenshots on some Intel cards under OpenGL.
2061 2061
2062 - My3D file loader fixed. 2062 - My3D file loader fixed.
2063 2063
2064 - Terrain mesh performance increased. 2064 - Terrain mesh performance increased.
2065 2065
2066 - Fixed mem leak in cube node. 2066 - Fixed mem leak in cube node.
2067 2067
2068 - Compiler errors in shaders won't corrupt the material renderer list anymore. 2068 - Compiler errors in shaders won't corrupt the material renderer list anymore.
2069 2069
2070 - Quake3 shader files now have properly working texture matrices again. 2070 - Quake3 shader files now have properly working texture matrices again.
2071 2071
2072 - FPS and Maya style cameras are now standard cameras with a special animator. 2072 - FPS and Maya style cameras are now standard cameras with a special animator.
2073 - ISceneNodeAnimator now inherits IEventReceiver 2073 - ISceneNodeAnimator now inherits IEventReceiver
2074 - New method ISceneNodeAnimator::isEventReceiverEnabled, returns false by default 2074 - New method ISceneNodeAnimator::isEventReceiverEnabled, returns false by default
2075 - CCameraSceneNode::OnEvent passes events to animators with enabled event receivers 2075 - CCameraSceneNode::OnEvent passes events to animators with enabled event receivers
2076 - ISceneNodeAnimatorCameraFPS and ISceneNodeAnimatorCameraMaya interfaces for changing camera settings at run-time. 2076 - ISceneNodeAnimatorCameraFPS and ISceneNodeAnimatorCameraMaya interfaces for changing camera settings at run-time.
2077 2077
2078 - Changed SExposedVideoData to use void* instead of s32. Fixed 64bit portability. 2078 - Changed SExposedVideoData to use void* instead of s32. Fixed 64bit portability.
2079 2079
2080 - Added support for front face culling. 2080 - Added support for front face culling.
2081 2081
2082 - Fix for HLSL shaders in one file. 2082 - Fix for HLSL shaders in one file.
2083 2083
2084 - Billboard::setColor bug fix by rogerborg. 2084 - Billboard::setColor bug fix by rogerborg.
2085 2085
2086 - Scene node sorting uses squared distances now. 2086 - Scene node sorting uses squared distances now.
2087 2087
2088 - Enhanced API for hte math functions. Many of them will now return a reference to *this for chained method invocations. 2088 - Enhanced API for hte math functions. Many of them will now return a reference to *this for chained method invocations.
2089 2089
2090 - prevent .x loader to load .xml files. 2090 - prevent .x loader to load .xml files.
2091 2091
2092 - AntiAlias support for OSX device. 2092 - AntiAlias support for OSX device.
2093 2093
2094 - Period character handling bug fixed. 2094 - Period character handling bug fixed.
2095 2095
2096 - New filesystem methods for filename handling. 2096 - New filesystem methods for filename handling.
2097 2097
2098 - added getVideoModeList and getDesktopResolution support for OSX 2098 - added getVideoModeList and getDesktopResolution support for OSX
2099 2099
2100 - Octree supports tangent meshes now. Some performance improvements for the generation. 2100 - Octree supports tangent meshes now. Some performance improvements for the generation.
2101 2101
2102 - Fix mouse pointer and fullscreen mode problems in OSX. 2102 - Fix mouse pointer and fullscreen mode problems in OSX.
2103 2103
2104 - Make cube and sphere scene node a mesh scene node (for access to the cube/sphere mesh). 2104 - Make cube and sphere scene node a mesh scene node (for access to the cube/sphere mesh).
2105 2105
2106 - Support for normal maps in 3ds files. Mem leak fixed. Loading for files with keyframe data fixed. 2106 - Support for normal maps in 3ds files. Mem leak fixed. Loading for files with keyframe data fixed.
2107 2107
2108 - BillboardTextSceneNode is now an IBillboardSceneNode and an ITextSceneNode. 2108 - BillboardTextSceneNode is now an IBillboardSceneNode and an ITextSceneNode.
2109 2109
2110 - Support for external windows under Linux. 2110 - Support for external windows under Linux.
2111 2111
2112 - .X loader bug fixes. 2112 - .X loader bug fixes.
2113 2113
2114 - Better debug visualization for MeshSceneNodes. 2114 - Better debug visualization for MeshSceneNodes.
2115 2115
2116 - Fixed bug in material serialization when using the NullDriver. 2116 - Fixed bug in material serialization when using the NullDriver.
2117 2117
2118 - Fix for Win32 CursorControl::setVisible 2118 - Fix for Win32 CursorControl::setVisible
2119 2119
2120 - Support for LWO files. 2120 - Support for LWO files.
2121 2121
2122 - Support for Collada 1.4 files. 2122 - Support for Collada 1.4 files.
2123 2123
2124 - Better and faster terrain smoothing by Frosty Topaz. 2124 - Better and faster terrain smoothing by Frosty Topaz.
2125 2125
2126 - Fixed a performance bug in ISceneNode constructor reported by izhbq412 2126 - Fixed a performance bug in ISceneNode constructor reported by izhbq412
2127 2127
2128 - Win32 device now makes the cursor invisible immediately when setVisible(false) is called. 2128 - Win32 device now makes the cursor invisible immediately when setVisible(false) is called.
2129 2129
2130 - Command line tool for mesh conversion added. 2130 - Command line tool for mesh conversion added.
2131 2131
2132 - Added volume light scene node 2132 - Added volume light scene node
2133 2133
2134 - .obj files now won't duplicate vertices unnecessarily. This allows recalculation of smooth normals and other things, and is also faster when rendering. The loading is a little slower now. 2134 - .obj files now won't duplicate vertices unnecessarily. This allows recalculation of smooth normals and other things, and is also faster when rendering. The loading is a little slower now.
2135 They also support normal maps and texture clamping now. Group support added, can be ignored via scene manager attribute scene::OBJ_LOADER_IGNORE_GROUPS. 2135 They also support normal maps and texture clamping now. Group support added, can be ignored via scene manager attribute scene::OBJ_LOADER_IGNORE_GROUPS.
2136 Normals will be calculated if the file doesn't provide them. 2136 Normals will be calculated if the file doesn't provide them.
2137 2137
2138 - Better fix for hires timers on dual core machines by RogerBorg 2138 - Better fix for hires timers on dual core machines by RogerBorg
2139 2139
2140 - added Initial Windows Mobile 6 Version. 2140 - added Initial Windows Mobile 6 Version.
2141 - Windows Mobile 6 SDK 2141 - Windows Mobile 6 SDK
2142 - Visual Studio 2005 2142 - Visual Studio 2005
2143 2143
2144 - Added checks to avoid buffer overrun in b3d loader. Enabled normals calculation in all cases, previously it was not done for lightmapped meshes. 2144 - Added checks to avoid buffer overrun in b3d loader. Enabled normals calculation in all cases, previously it was not done for lightmapped meshes.
2145 Fixed transparency support. Added mipmap creation flag support which might disable mipmap creation too often. Should be checked. 2145 Fixed transparency support. Added mipmap creation flag support which might disable mipmap creation too often. Should be checked.
2146 2146
2147 - Burningvideo: MipMap Selection repaired 2147 - Burningvideo: MipMap Selection repaired
2148 2148
2149 - renamed private Driver function getTextureSizeFromImageSize to getTextureSizeFromSurfaceSize 2149 - renamed private Driver function getTextureSizeFromImageSize to getTextureSizeFromSurfaceSize
2150 2150
2151 - Added collision manager speedup patch by RogerBorg. 2151 - Added collision manager speedup patch by RogerBorg.
2152 2152
2153 - D3D drivers now releases the IImage member from initialization, thus freeing lots of memory. The image is accessible via the driver anyway. 2153 - D3D drivers now releases the IImage member from initialization, thus freeing lots of memory. The image is accessible via the driver anyway.
2154 2154
2155 - SDL device character handling enhanced. 2155 - SDL device character handling enhanced.
2156 2156
2157 - MeshBuffers can now access the elements of the S3DVertex base class in all vertex types directly, instead of using the getVertices() pointer access. This simplifies simple mesh manipulations as it does not require a switch statement over all vertex types. 2157 - MeshBuffers can now access the elements of the S3DVertex base class in all vertex types directly, instead of using the getVertices() pointer access. This simplifies simple mesh manipulations as it does not require a switch statement over all vertex types.
2158 2158
2159 - More OpenGL renderstate bugs fixed 2159 - More OpenGL renderstate bugs fixed
2160 2160
2161 - GLSL changes for setting arrays. Also allow for only pixel or vertex shader to be set. 2161 - GLSL changes for setting arrays. Also allow for only pixel or vertex shader to be set.
2162 2162
2163 - Bugfix for removeChild in AnimatedMeshSceneNode. 2163 - Bugfix for removeChild in AnimatedMeshSceneNode.
2164 2164
2165 - Some bugfixes for Joint handling and skinned meshes. Added getJointCount in IAnimatedMeshSceneNode and isStatic in ISkinnedMesh. 2165 - Some bugfixes for Joint handling and skinned meshes. Added getJointCount in IAnimatedMeshSceneNode and isStatic in ISkinnedMesh.
2166 2166
2167 - Added WAL image format support based on the original loader by Murphy McCauley, written for Irrlicht around version 0.7. 2167 - Added WAL image format support based on the original loader by Murphy McCauley, written for Irrlicht around version 0.7.
2168 2168
2169 - OpenGL RTTs now also support alpha values. 2169 - OpenGL RTTs now also support alpha values.
2170 2170
2171 - New method driver->getVendorInfo() to query information about the actual hardware driver. 2171 - New method driver->getVendorInfo() to query information about the actual hardware driver.
2172 2172
2173 - Fixed somed CQuake3ShaderSceneNode problems. 2173 - Fixed somed CQuake3ShaderSceneNode problems.
2174 2174
2175 - Changed BurningsVideo internal Vertex Format. version changed to 0.39 2175 - Changed BurningsVideo internal Vertex Format. version changed to 0.39
2176 2176
2177 - SceneManager: 2177 - SceneManager:
2178 Removed the seperate rendering states for quake3 Shader Scene Nodes. 2178 Removed the seperate rendering states for quake3 Shader Scene Nodes.
2179 Nodes are now solid or transparent. ( but still more states are needed ) 2179 Nodes are now solid or transparent. ( but still more states are needed )
2180 2180
2181 - GUI: 2181 - GUI:
2182 2182
2183 - Editbox didn't draw children 2183 - Editbox didn't draw children
2184 - Checking IsEnabled is now consistent across all GUI elements 2184 - Checking IsEnabled is now consistent across all GUI elements
2185 - Move window to front bug fixed. 2185 - Move window to front bug fixed.
2186 - Disabling the BMP loader now compiles without the built-in font 2186 - Disabling the BMP loader now compiles without the built-in font
2187 - Added setTextAlignment to IGUIComboBox 2187 - Added setTextAlignment to IGUIComboBox
2188 - Avoid dropping skin pointer which is in use. 2188 - Avoid dropping skin pointer which is in use.
2189 - Better warning for fonts without regions (sometimes wrong file is loaded by the user). 2189 - Better warning for fonts without regions (sometimes wrong file is loaded by the user).
2190 - Fixed a bug in CGUISpriteBank which caused a crash when a non-looping animated sprite reached the end of its animation. 2190 - Fixed a bug in CGUISpriteBank which caused a crash when a non-looping animated sprite reached the end of its animation.
2191 - Modal screens no longer flash invisible children when rejecting a focus change. 2191 - Modal screens no longer flash invisible children when rejecting a focus change.
2192 - Finally added StarSonata patch with table element and TabControl additions. Table is based on MultiColor listbox by Acki, and has loads of changes by CuteAlien. 2192 - Finally added StarSonata patch with table element and TabControl additions. Table is based on MultiColor listbox by Acki, and has loads of changes by CuteAlien.
2193 2193
2194------------------------------------------- 2194-------------------------------------------
2195Changes in version 1.4.2 (22.9.2008) 2195Changes in version 1.4.2 (22.9.2008)
2196 2196
2197 - Unified the handling of zwrite enable with transparent materials on all hw accelerated drivers. This means that all transparent materials will now disable ZWrite, ignoring the material flag. 2197 - Unified the handling of zwrite enable with transparent materials on all hw accelerated drivers. This means that all transparent materials will now disable ZWrite, ignoring the material flag.
2198 There is a scene manager attribute, though, which will revert this behavior to the usual SMaterial driven way. Simply call 2198 There is a scene manager attribute, though, which will revert this behavior to the usual SMaterial driven way. Simply call
2199 SceneManager->getParameters()->setAttribute(scene::ALLOW_ZWRITE_ON_TRANSPARENT, true) and set the SMaterial flag as desired. 2199 SceneManager->getParameters()->setAttribute(scene::ALLOW_ZWRITE_ON_TRANSPARENT, true) and set the SMaterial flag as desired.
2200 2200
2201 - Some changes for texture matrices in q3 shaders. 2201 - Some changes for texture matrices in q3 shaders.
2202 2202
2203 - Added BlindSide's irrAllocator patch for proper TextureMatrix release under Win32 with any CRT library. 2203 - Added BlindSide's irrAllocator patch for proper TextureMatrix release under Win32 with any CRT library.
2204 2204
2205 - Added VC9 project files. 2205 - Added VC9 project files.
2206 2206
2207 - Added getEmitter for particle system scene nodes. 2207 - Added getEmitter for particle system scene nodes.
2208 2208
2209 - Fixed rounding problem in getScreenCoordinatesFrom3DPosition 2209 - Fixed rounding problem in getScreenCoordinatesFrom3DPosition
2210 2210
2211 - Fixed Software renderer color flicker, was a shift bug I believe. 2211 - Fixed Software renderer color flicker, was a shift bug I believe.
2212 2212
2213 - irrMap fix to make root node always black, by rogerborg. 2213 - irrMap fix to make root node always black, by rogerborg.
2214 2214
2215 - Possible core dump fixed in particle system node, by CuteAlien. 2215 - Possible core dump fixed in particle system node, by CuteAlien.
2216 2216
2217 - Mem leak fixed in b3d loader. 2217 - Mem leak fixed in b3d loader.
2218 2218
2219 - Avoid double rendering of child nodes of joints. 2219 - Avoid double rendering of child nodes of joints.
2220 2220
2221 - Support for d3d draw2dimage clipping by CuteAlien. 2221 - Support for d3d draw2dimage clipping by CuteAlien.
2222 2222
2223 - Fixed an animation transition bug, pointed out by wuallen. 2223 - Fixed an animation transition bug, pointed out by wuallen.
2224 2224
2225 - Fixed the major problem with OpenGL drivers, that claim to be 2.x compatible, but don't offer NPOT support (well, they do, but only in sw rendering...). Now we check for the extension string only. 2225 - Fixed the major problem with OpenGL drivers, that claim to be 2.x compatible, but don't offer NPOT support (well, they do, but only in sw rendering...). Now we check for the extension string only.
2226 2226
2227 - Fixed .obj loader bug which inserted vertices in wrong buffers. 2227 - Fixed .obj loader bug which inserted vertices in wrong buffers.
2228 2228
2229 - Fixed minor mem leak in Linux device. 2229 - Fixed minor mem leak in Linux device.
2230 2230
2231------------------------------------------- 2231-------------------------------------------
2232Changes in version 1.4.1 (04 Jun 2008) 2232Changes in version 1.4.1 (04 Jun 2008)
2233 2233
2234 - MD3 meshes are movable again. 2234 - MD3 meshes are movable again.
2235 2235
2236 - New JPG image writer version by Vitek. 2236 - New JPG image writer version by Vitek.
2237 2237
2238 - Texture matrix fixes, all methods should now work as expected. 2238 - Texture matrix fixes, all methods should now work as expected.
2239 2239
2240 - Some container methods now return the this pointer after member functions have been called on them, in order to allow call chains. 2240 - Some container methods now return the this pointer after member functions have been called on them, in order to allow call chains.
2241 2241
2242 - Some new methods for SColorf access, for uniform API of all colors. 2242 - Some new methods for SColorf access, for uniform API of all colors.
2243 2243
2244 - bug fix for SMaterialLayer equality check. Did only check the TextureMatrix pointers, instead of the matrices. 2244 - bug fix for SMaterialLayer equality check. Did only check the TextureMatrix pointers, instead of the matrices.
2245 2245
2246 - New getMesh method for the SceneManager, which takes an IReadFile instead of a filename. 2246 - New getMesh method for the SceneManager, which takes an IReadFile instead of a filename.
2247 2247
2248 - Support for flags _WIN32 and _WIN64 in addition to WIN32 and WIN64 added, this simplifies usage of Irrlicht headers under MSVC. 2248 - Support for flags _WIN32 and _WIN64 in addition to WIN32 and WIN64 added, this simplifies usage of Irrlicht headers under MSVC.
2249 2249
2250 - Fixed a crash in GUIMeshViewer 2250 - Fixed a crash in GUIMeshViewer
2251 2251
2252 - new string method findLastChar by Halifax 2252 - new string method findLastChar by Halifax
2253 2253
2254 - GUIEditBox got the 1 pixel shift after click fixed. 2254 - GUIEditBox got the 1 pixel shift after click fixed.
2255 2255
2256 - Some debug visualization has been fixed for skinned meshes 2256 - Some debug visualization has been fixed for skinned meshes
2257 2257
2258 - Undef PI symbol before declaring core::PI to avoid compilation problems 2258 - Undef PI symbol before declaring core::PI to avoid compilation problems
2259 2259
2260 - SAnimatedMesh now properly returns properties of Meshes[0] if those exist, such that it should be usable in place of an SMesh again. 2260 - SAnimatedMesh now properly returns properties of Meshes[0] if those exist, such that it should be usable in place of an SMesh again.
2261 2261
2262 - Fixed 2d initialisation in opengl and d3d9 driver. This should fix problems with render states mixing up and distrubing, e.g. skin effects. 2262 - Fixed 2d initialisation in opengl and d3d9 driver. This should fix problems with render states mixing up and distrubing, e.g. skin effects.
2263 2263
2264 - Avoid a crash when passing setSkin the current skin 2264 - Avoid a crash when passing setSkin the current skin
2265 2265
2266 2266
2267 - Fixed current frame calculation for non-looped animations. Bug reported by greenya. 2267 - Fixed current frame calculation for non-looped animations. Bug reported by greenya.
2268 2268
2269 - Fixed bug in CBillboardSceneNode::setColor, reported by rogerborg 2269 - Fixed bug in CBillboardSceneNode::setColor, reported by rogerborg
2270 2270
2271 - Fixed clipping of menu, toolbar and combo box GUI elements, reported by greenya 2271 - Fixed clipping of menu, toolbar and combo box GUI elements, reported by greenya
2272 - setNotClipped now applies all the way up to the root of the GUI environment, rather than just to the next parent 2272 - setNotClipped now applies all the way up to the root of the GUI environment, rather than just to the next parent
2273 2273
2274 - Made new scene managers use the original manager's GUIEnvironment, reported by MasterGod 2274 - Made new scene managers use the original manager's GUIEnvironment, reported by MasterGod
2275 2275
2276 - Fixed IGUICheckBox::setEnabled, reported by Dorth 2276 - Fixed IGUICheckBox::setEnabled, reported by Dorth
2277 2277
2278 - Fixed the FollowSpline animator to avoid crashes when only one waypoint is given. 2278 - Fixed the FollowSpline animator to avoid crashes when only one waypoint is given.
2279 2279
2280 - OpenGL VolumeShadow now uses glPolygonOffset to avoid zbuffer artifacts. 2280 - OpenGL VolumeShadow now uses glPolygonOffset to avoid zbuffer artifacts.
2281 2281
2282 - Fixed meshbuffer corruption in append methods. 2282 - Fixed meshbuffer corruption in append methods.
2283 2283
2284 - Fixed mem leaks in irrArray. 2284 - Fixed mem leaks in irrArray.
2285 2285
2286 - Fixed minor bugs in ISceneNode and ISceneManager. 2286 - Fixed minor bugs in ISceneNode and ISceneManager.
2287 2287
2288 - Fixed the MeshCache handling of GeometryCreator meshes. 2288 - Fixed the MeshCache handling of GeometryCreator meshes.
2289 2289
2290 - Terrain LOD bugfix. 2290 - Terrain LOD bugfix.
2291 2291
2292 - Some Collada 1.3 loader enhancements and bug fixes. 2292 - Some Collada 1.3 loader enhancements and bug fixes.
2293 2293
2294 - Fixed a bug in CGUISpriteBank which caused a crash when a non-looping animated sprite reached the end of its animation. 2294 - Fixed a bug in CGUISpriteBank which caused a crash when a non-looping animated sprite reached the end of its animation.
2295 2295
2296 - Enhanced the .obj loader with the patch from ryanclark. This allows for recalculation of smoothed normals of the mesh, also should decrease the tri count on some meshes. 2296 - Enhanced the .obj loader with the patch from ryanclark. This allows for recalculation of smoothed normals of the mesh, also should decrease the tri count on some meshes.
2297 2297
2298 - Avoid the global Logger to be destroyed too early. 2298 - Avoid the global Logger to be destroyed too early.
2299 2299
2300 - Function setbit was renamed to setbit_cond to avoid name clashes. 2300 - Function setbit was renamed to setbit_cond to avoid name clashes.
2301 2301
2302 - Fixed .x animations with multiple references to the same joint from different meshes. Fixed texture path problems. 2302 - Fixed .x animations with multiple references to the same joint from different meshes. Fixed texture path problems.
2303 2303
2304 - Support for Milkshape 1.8 files, also with multiple weights per joint. 2304 - Support for Milkshape 1.8 files, also with multiple weights per joint.
2305 2305
2306 - The config file now also supports _IRR_OSX_PLATFORM_ and _IRR_USE_OSX_DEVICE_. This allows to use the Linux device (X11 support) on OSX. 2306 - The config file now also supports _IRR_OSX_PLATFORM_ and _IRR_USE_OSX_DEVICE_. This allows to use the Linux device (X11 support) on OSX.
2307 2307
2308 - Avoid terrain scene node crash when heightmap cannot be loaded. 2308 - Avoid terrain scene node crash when heightmap cannot be loaded.
2309 2309
2310 - Speed improvements for WaterSceneNode. 2310 - Speed improvements for WaterSceneNode.
2311 2311
2312 - FlyCircle animator now also works for upvectors (Direction parameter) which are not (0,1,0). Is also faster now, since most calculations are done on init. Thanks to Dorth for working on this. 2312 - FlyCircle animator now also works for upvectors (Direction parameter) which are not (0,1,0). Is also faster now, since most calculations are done on init. Thanks to Dorth for working on this.
2313 2313
2314 - The 3ds loader correctly creates a texture matrix when texture tiling properties are found in the file. 2314 - The 3ds loader correctly creates a texture matrix when texture tiling properties are found in the file.
2315 2315
2316 - Fix for S3DVertex comparison operators. Used some wrong logic. 2316 - Fix for S3DVertex comparison operators. Used some wrong logic.
2317 2317
2318 - Bugfix getCurrentRenderTargetSize in D3D drivers. Due to signature differences a wrong virtual method was chosen. Thanks to Jiang for finding it. 2318 - Bugfix getCurrentRenderTargetSize in D3D drivers. Due to signature differences a wrong virtual method was chosen. Thanks to Jiang for finding it.
2319 2319
2320------------------------------------------- 2320-------------------------------------------
2321Changes in version 1.4 (30 Nov 2007) 2321Changes in version 1.4 (30 Nov 2007)
2322 2322
2323 - Major API change: All material properties which are available per texture layer (curently texture, texture matrix, texture filters, and texture wrap mode) are separated into a new struct SMaterialLayer. You can access them via the array TextureLayer[] in SMaterial. The texture matrix methods in SMaterial are still alive, and also textures can be accessed via methods in SMaterial now. But still, many places in user code need some update (usually changing material.Textures[i] to material.TextureLayer[i].Texture etc.) 2323 - Major API change: All material properties which are available per texture layer (curently texture, texture matrix, texture filters, and texture wrap mode) are separated into a new struct SMaterialLayer. You can access them via the array TextureLayer[] in SMaterial. The texture matrix methods in SMaterial are still alive, and also textures can be accessed via methods in SMaterial now. But still, many places in user code need some update (usually changing material.Textures[i] to material.TextureLayer[i].Texture etc.)
2324 2324
2325 - Major API rewriting for proper const usage. Now, most getter methods are const and so are the larger parameters and return values. Moreover, many methods taking only unsigned numbers now use u32 instead of s32 in order to recognize this limitation from the method's signature. 2325 - Major API rewriting for proper const usage. Now, most getter methods are const and so are the larger parameters and return values. Moreover, many methods taking only unsigned numbers now use u32 instead of s32 in order to recognize this limitation from the method's signature.
2326 2326
2327 - the base class for nearly all Irrlicht classes has been renamed from IUnknown to IReferenceCounted 2327 - the base class for nearly all Irrlicht classes has been renamed from IUnknown to IReferenceCounted
2328 2328
2329 - Fixed Skybox texture orientations. They are now displayed non-flipped. Existing skyboxes have to be changed, though: Exchange left and right texture. Textures from Terragen and other tools can be used directly, now. Quake maps will also need the right/left exchange. 2329 - Fixed Skybox texture orientations. They are now displayed non-flipped. Existing skyboxes have to be changed, though: Exchange left and right texture. Textures from Terragen and other tools can be used directly, now. Quake maps will also need the right/left exchange.
2330 2330
2331 - Added ITexture::isRenderTarget() 2331 - Added ITexture::isRenderTarget()
2332 2332
2333 - Added STL mesh file format reader and writer. 2333 - Added STL mesh file format reader and writer.
2334 2334
2335 - Added IMeshManipulator::createMeshWelded which creates a copy of the mesh with similar vertices welded together. 2335 - Added IMeshManipulator::createMeshWelded which creates a copy of the mesh with similar vertices welded together.
2336 2336
2337 - Irrlicht now has its own file format for static meshes. It is based on xml and has the 2337 - Irrlicht now has its own file format for static meshes. It is based on xml and has the
2338 extension .irrmesh. Irrlicht is able to write every IMesh to this file format, and of course to 2338 extension .irrmesh. Irrlicht is able to write every IMesh to this file format, and of course to
2339 read it back again. 2339 read it back again.
2340 2340
2341 - Irrlicht is now able to write Meshes out into files. Use ISceneManager::createMeshWriter() 2341 - Irrlicht is now able to write Meshes out into files. Use ISceneManager::createMeshWriter()
2342 to obtain an interface with which you can write out meshes. Currently, an own .irrmesh 2342 to obtain an interface with which you can write out meshes. Currently, an own .irrmesh
2343 file format is supported as well as the COLLADA file format. 2343 file format is supported as well as the COLLADA file format.
2344 2344
2345 - fixed the keyboard autorepeat difference betwenn Linux and Windows. Thanks to denton we now have only KeyPressed events on both systems in case of autorepeat. 2345 - fixed the keyboard autorepeat difference betwenn Linux and Windows. Thanks to denton we now have only KeyPressed events on both systems in case of autorepeat.
2346 2346
2347 - Added several new particle emitters and affectors from IrrSpintz. Also some new getter and setter methods were added. 2347 - Added several new particle emitters and affectors from IrrSpintz. Also some new getter and setter methods were added.
2348 2348
2349 - D3D transparent materials do not disable zbuffer writing automatically anymore. This has to be done by the user to keep those settings configurable. 2349 - D3D transparent materials do not disable zbuffer writing automatically anymore. This has to be done by the user to keep those settings configurable.
2350 2350
2351 - OpenGL texture now also require a regenerateMipmapLevels() after unlocking. This is the same as for d3d devices now. 2351 - OpenGL texture now also require a regenerateMipmapLevels() after unlocking. This is the same as for d3d devices now.
2352 2352
2353 - Point sprite support in the driver. Point sprites use just one 3d vertex and a size to create a textured billboard on the GPU. This can provide fast particle systems, especially in combination with shaders. The proper particle extension will follow later on as it needs some more refactoring. 2353 - Point sprite support in the driver. Point sprites use just one 3d vertex and a size to create a textured billboard on the GPU. This can provide fast particle systems, especially in combination with shaders. The proper particle extension will follow later on as it needs some more refactoring.
2354 2354
2355 - OpenGL 2D drawing accuracy fix by tuXXX 2355 - OpenGL 2D drawing accuracy fix by tuXXX
2356 2356
2357 - Added OnResize and getCurrentRenderTargetSize to the software video drivers. 2357 - Added OnResize and getCurrentRenderTargetSize to the software video drivers.
2358 2358
2359 - Added Spot light type for dynamic lights. Note that both position and direction for all dynamic lights are now determined by the LightSceneNode, the SLight attributes are only used for internal purposes. 2359 - Added Spot light type for dynamic lights. Note that both position and direction for all dynamic lights are now determined by the LightSceneNode, the SLight attributes are only used for internal purposes.
2360 API change! One can easily work around this change by setting the LightSceneNode's Position and Rotation instead of the SLight's. This change won't provoke a compile error, though, and can hence go unrecognized besides the visual problems. 2360 API change! One can easily work around this change by setting the LightSceneNode's Position and Rotation instead of the SLight's. This change won't provoke a compile error, though, and can hence go unrecognized besides the visual problems.
2361 The lights use a default direction (0,0,-1) which is rotated by the usual scene node transformations and can hence be modified by scene node animators. 2361 The lights use a default direction (0,0,-1) which is rotated by the usual scene node transformations and can hence be modified by scene node animators.
2362 A change in the Radius usage can lead to strange artifacts. Just increase the Radius in this case. further handling of Radius is to be discussed. 2362 A change in the Radius usage can lead to strange artifacts. Just increase the Radius in this case. further handling of Radius is to be discussed.
2363 2363
2364 - Added per pixel fog support for OpenGL. 2364 - Added per pixel fog support for OpenGL.
2365 2365
2366 - Added driver support for user defined clip planes, based on mandrav's patch. 2366 - Added driver support for user defined clip planes, based on mandrav's patch.
2367 The OpenGL version is more picky about ModelView matrices, so it's best to set the projection plane at the time it is used. 2367 The OpenGL version is more picky about ModelView matrices, so it's best to set the projection plane at the time it is used.
2368 2368
2369 - .obj files now load relative indices correctly. Collada files load textures. 2369 - .obj files now load relative indices correctly. Collada files load textures.
2370 2370
2371 - A new MeshBuffer implementation is publicly available. It supports a shared vertex list for all MeshBuffers, used for MS3D meshes. 2371 - A new MeshBuffer implementation is publicly available. It supports a shared vertex list for all MeshBuffers, used for MS3D meshes.
2372 2372
2373 - MeshBuffers can recalculate their BoundingBoxes on their own now, no need for MeshManipulators. New append methods help to merge MeshBuffers. take care that the types match! 2373 - MeshBuffers can recalculate their BoundingBoxes on their own now, no need for MeshManipulators. New append methods help to merge MeshBuffers. take care that the types match!
2374 2374
2375 - The new texture generation mode is working. With ETCF_NO_ALPHA_CHANNEL textures are generated without ALPHA bits reserved. 2375 - The new texture generation mode is working. With ETCF_NO_ALPHA_CHANNEL textures are generated without ALPHA bits reserved.
2376 2376
2377 - D3D9 hardware mipmap updates are re-enabled, problems should be reported. 2377 - D3D9 hardware mipmap updates are re-enabled, problems should be reported.
2378 2378
2379 - In some cases fullscreeen modes under win32 should have a better frame rate now. 2379 - In some cases fullscreeen modes under win32 should have a better frame rate now.
2380 2380
2381 - Fixed the hillplane mesh to work with non-quadratic dimensions as well. Changed the interface also, so use a u32 dimension to specify the tilecount now. 2381 - Fixed the hillplane mesh to work with non-quadratic dimensions as well. Changed the interface also, so use a u32 dimension to specify the tilecount now.
2382 2382
2383 - Hires timers are disabled on windows systems with more than one CPU, due to bugs 2383 - Hires timers are disabled on windows systems with more than one CPU, due to bugs
2384 in the BIOS of many multi-core motherboards. To enable hires timers in your project, 2384 in the BIOS of many multi-core motherboards. To enable hires timers in your project,
2385 use SetProcessAffinityMask to set to use only one CPU before creating the device. 2385 use SetProcessAffinityMask to set to use only one CPU before creating the device.
2386 2386
2387 - OpenGL render targets now the same way up as the other drivers. If you have 2387 - OpenGL render targets now the same way up as the other drivers. If you have
2388 written opengl shaders that use render targets then you'll need to change your 2388 written opengl shaders that use render targets then you'll need to change your
2389 texture coordinates accordingly. 2389 texture coordinates accordingly.
2390 2390
2391 - Fixed some OpenGL renderstate stuff. setBasicRenderstate returns with 2391 - Fixed some OpenGL renderstate stuff. setBasicRenderstate returns with
2392 active texture layer 0. The material renderer must return from OnUnset 2392 active texture layer 0. The material renderer must return from OnUnset
2393 with the same active texture layer. The alpha test is disabled and the 2393 with the same active texture layer. The alpha test is disabled and the
2394 texture mode should be GL_MODULATE. 2394 texture mode should be GL_MODULATE.
2395 2395
2396 - Fixed CSoftwareTexture2::getOriginalSize, reported by CaptainPants. Added a 2396 - Fixed CSoftwareTexture2::getOriginalSize, reported by CaptainPants. Added a
2397 new method CSoftwareTexture2::getMaxMipMapSize to return the size of the largest 2397 new method CSoftwareTexture2::getMaxMipMapSize to return the size of the largest
2398 mipmap, which is used by texelarea instead of getOriginalSize. 2398 mipmap, which is used by texelarea instead of getOriginalSize.
2399 2399
2400 - Changed parameter order of addArrowMesh and added default parameters such 2400 - Changed parameter order of addArrowMesh and added default parameters such
2401 that it's enough to set the color (or even just the name). 2401 that it's enough to set the color (or even just the name).
2402 2402
2403 - Fixed bugs in MY3D and OBJ loader. 2403 - Fixed bugs in MY3D and OBJ loader.
2404 2404
2405 - Added IMeshCache::clearUnusedMeshes(). This allows the user to remove 2405 - Added IMeshCache::clearUnusedMeshes(). This allows the user to remove
2406 meshes that are sitting in the mesh cache but aren't used by any scene nodes. 2406 meshes that are sitting in the mesh cache but aren't used by any scene nodes.
2407 This is useful for example when changing levels. 2407 This is useful for example when changing levels.
2408 2408
2409 - Added IUnknown::getReferenceCount() 2409 - Added IUnknown::getReferenceCount()
2410 2410
2411 - createDevice now reports errors if the driverType is unknown, previously it 2411 - createDevice now reports errors if the driverType is unknown, previously it
2412 created a window but populated it with a null driver without any warning. 2412 created a window but populated it with a null driver without any warning.
2413 2413
2414 - Fixed a bug in CBillboardTextSceneNode::setText where the old text was not 2414 - Fixed a bug in CBillboardTextSceneNode::setText where the old text was not
2415 cleared. 2415 cleared.
2416 2416
2417 - Changed irrArray::linear_search to use the == operator rather than < 2417 - Changed irrArray::linear_search to use the == operator rather than <
2418 This may be slower in some cases, but it no longer returns false positives 2418 This may be slower in some cases, but it no longer returns false positives
2419 when searching arrays of classes that override the < operator but 2419 when searching arrays of classes that override the < operator but
2420 !(x<y) && !(y<x) does not necessarily mean x==y (vectors, positions etc). 2420 !(x<y) && !(y<x) does not necessarily mean x==y (vectors, positions etc).
2421 2421
2422 - Fixed getSize/getOriginalSize method inversion in OpenGL textures. 2422 - Fixed getSize/getOriginalSize method inversion in OpenGL textures.
2423 2423
2424 - Added per texture-layer filter settings, i.e. one can choose to filter 2424 - Added per texture-layer filter settings, i.e. one can choose to filter
2425 only chosen texture layers. If all layers are set to the same value the 2425 only chosen texture layers. If all layers are set to the same value the
2426 convenience function material.setFlag(EMF_BILINEAR_FILTER, boolean) can be 2426 convenience function material.setFlag(EMF_BILINEAR_FILTER, boolean) can be
2427 used, TRILINEAR_FILTER and ANISOTROPIC_FILTER do work, too. In all other 2427 used, TRILINEAR_FILTER and ANISOTROPIC_FILTER do work, too. In all other
2428 cases material.BilinearFilter[i] (resp. TrilinerFilter[i] or 2428 cases material.BilinearFilter[i] (resp. TrilinerFilter[i] or
2429 AnisotropicFilter[i]) shall are to be used. 2429 AnisotropicFilter[i]) shall are to be used.
2430 2430
2431 - Added adjustable Attenuation for dynamic lights. This allows to change the 2431 - Added adjustable Attenuation for dynamic lights. This allows to change the
2432 intensity of a light based on its distance. The default attenuation changed 2432 intensity of a light based on its distance. The default attenuation changed
2433 from (0,1/radius,0) to (1,0,0) which means no effect by distance. Good 2433 from (0,1/radius,0) to (1,0,0) which means no effect by distance. Good
2434 values for distance effects simply add small values to the second and third 2434 values for distance effects simply add small values to the second and third
2435 element. 2435 element.
2436 2436
2437 - Fixed a typo to do with 2nd light vectors in opengl parallax and normal map 2437 - Fixed a typo to do with 2nd light vectors in opengl parallax and normal map
2438 renderers. 2438 renderers.
2439 2439
2440GUI: 2440GUI:
2441 2441
2442 - Fixes to menu and listbox (de)serialization, and custom listbox colors by CuteAlien. 2442 - Fixes to menu and listbox (de)serialization, and custom listbox colors by CuteAlien.
2443 2443
2444 - Added EGET_ELEMENT_CLOSED GUI event type. Absorb this event to cancel closing a window. 2444 - Added EGET_ELEMENT_CLOSED GUI event type. Absorb this event to cancel closing a window.
2445 2445
2446 - Added _IRR_COMPILE_WITH_GUI_ to allow compiling without the GUI. 2446 - Added _IRR_COMPILE_WITH_GUI_ to allow compiling without the GUI.
2447 This is useful if you use another GUI system (ie CEGUI) or are using Irrlicht 2447 This is useful if you use another GUI system (ie CEGUI) or are using Irrlicht
2448 inside another window. You will have to supply an external IGUIFont if you wish 2448 inside another window. You will have to supply an external IGUIFont if you wish
2449 to use font scene nodes as there will be no GUI environment available to load fonts. 2449 to use font scene nodes as there will be no GUI environment available to load fonts.
2450 2450
2451 - Added 7 more symbols to the built-in font and skin. 2451 - Added 7 more symbols to the built-in font and skin.
2452 EGDI_MORE_LEFT, EGDI_MORE_RIGHT, EGDI_MORE_UP, EGDI_MORE_DOWN: "<<" symbols 2452 EGDI_MORE_LEFT, EGDI_MORE_RIGHT, EGDI_MORE_UP, EGDI_MORE_DOWN: "<<" symbols
2453 indicating there is more content in that direction. 2453 indicating there is more content in that direction.
2454 EGDI_WINDOW_RESIZE: Window symbol for resizing by clicking the bottom right 2454 EGDI_WINDOW_RESIZE: Window symbol for resizing by clicking the bottom right
2455 corner of a window. 2455 corner of a window.
2456 EGDI_EXPAND, EGDI_COLLAPSE: Plus and minus buttons for trees. 2456 EGDI_EXPAND, EGDI_COLLAPSE: Plus and minus buttons for trees.
2457 2457
2458 - Added IGUISkin::draw2dRectangle, so skins can override the default highlight. 2458 - Added IGUISkin::draw2dRectangle, so skins can override the default highlight.
2459 2459
2460 - EGET_ELEMENT_FOCUS_LOST and EGET_ELEMENT_FOCUSED events can now be absorbed 2460 - EGET_ELEMENT_FOCUS_LOST and EGET_ELEMENT_FOCUSED events can now be absorbed
2461 by returning true in OnEvent. Absorbing these events will cancel the focus 2461 by returning true in OnEvent. Absorbing these events will cancel the focus
2462 change. 2462 change.
2463 2463
2464 - IGUIEnvironment::setFocus and removeFocus now return bools. 2464 - IGUIEnvironment::setFocus and removeFocus now return bools.
2465 2465
2466 - New SEvent.GUIEvent.Element. Points to a second element that is being 2466 - New SEvent.GUIEvent.Element. Points to a second element that is being
2467 used in the event. During a EGET_ELEMENT_FOCUS_LOST event it points 2467 used in the event. During a EGET_ELEMENT_FOCUS_LOST event it points
2468 to the element which would like the focus. 2468 to the element which would like the focus.
2469 2469
2470 - Fixed the default font icons so they have a black border and are not 2470 - Fixed the default font icons so they have a black border and are not
2471 invisible in default listboxes. Old font tool textures now keep their color 2471 invisible in default listboxes. Old font tool textures now keep their color
2472 so colorful fonts are possible by editing the font's texture. The colors of 2472 so colorful fonts are possible by editing the font's texture. The colors of
2473 completely transparent areas are no longer kept when generating the texture 2473 completely transparent areas are no longer kept when generating the texture
2474 from an image. Added builtInFont.bmp for ease of editing. 2474 from an image. Added builtInFont.bmp for ease of editing.
2475 2475
2476 - IGUIElement changes: 2476 - IGUIElement changes:
2477 2477
2478 Most elements can now be accessed using the keyboard. Use space and return 2478 Most elements can now be accessed using the keyboard. Use space and return
2479 to select or deselect, escape to cancel selection (ie while pressing a 2479 to select or deselect, escape to cancel selection (ie while pressing a
2480 button with space or return), and the cursor keys where appropriate. 2480 button with space or return), and the cursor keys where appropriate.
2481 2481
2482 Added navigation through the GUI using tab and the shift and control keys. 2482 Added navigation through the GUI using tab and the shift and control keys.
2483 Use these new methods to control tab navigation: 2483 Use these new methods to control tab navigation:
2484 setTabStop - set this to true if the focus will vist the element. 2484 setTabStop - set this to true if the focus will vist the element.
2485 isTabStop - returns true if the focus will visit the element. 2485 isTabStop - returns true if the focus will visit the element.
2486 setTabOrder - Sets the order of focus within this tab group, 2486 setTabOrder - Sets the order of focus within this tab group,
2487 Only one element in each group should have the same TabOrder number. 2487 Only one element in each group should have the same TabOrder number.
2488 Set to -1 to add to the end of the group. 2488 Set to -1 to add to the end of the group.
2489 setTabGroup - set this to true if the element is a group that contains 2489 setTabGroup - set this to true if the element is a group that contains
2490 other elements, and can be navigated with ctrl+tab/ctrl+shift+tab. 2490 other elements, and can be navigated with ctrl+tab/ctrl+shift+tab.
2491 isTabGroup - returns true if the element is a tab group. 2491 isTabGroup - returns true if the element is a tab group.
2492 getTabGroup - returns the tab group that the element belongs to. 2492 getTabGroup - returns the tab group that the element belongs to.
2493 getNextElement - searches for the next element which would be focused 2493 getNextElement - searches for the next element which would be focused
2494 within the element's children, only useful if you are doing your own 2494 within the element's children, only useful if you are doing your own
2495 custom navigation. 2495 custom navigation.
2496 2496
2497 Added isMychild, to check if an element is descended from this one. 2497 Added isMychild, to check if an element is descended from this one.
2498 2498
2499 Added isPointInside, which is called by getElementFromPoint. Override this 2499 Added isPointInside, which is called by getElementFromPoint. Override this
2500 when making non-rectangular elements. 2500 when making non-rectangular elements.
2501 2501
2502 OnEvent no longer absorbs events by default. 2502 OnEvent no longer absorbs events by default.
2503 2503
2504 Serialize/deserialize now call getter and setter functions, in case people 2504 Serialize/deserialize now call getter and setter functions, in case people
2505 override these and don't use the internal protected variables. 2505 override these and don't use the internal protected variables.
2506 2506
2507 added getAbsoluteClippingRect, returns the visible area of an element. 2507 added getAbsoluteClippingRect, returns the visible area of an element.
2508 2508
2509 - Added IGUISpinBox, by Michael Zeilfelder (CuteAlien). 2509 - Added IGUISpinBox, by Michael Zeilfelder (CuteAlien).
2510 2510
2511 - IGUIEditBox new methods: 2511 - IGUIEditBox new methods:
2512 setWordWrap/isWordWrapEnabled, to split words on to the next line. 2512 setWordWrap/isWordWrapEnabled, to split words on to the next line.
2513 setMultiLine and isMultiLineEnabled, inserts a newline instead of sending 2513 setMultiLine and isMultiLineEnabled, inserts a newline instead of sending
2514 EGET_EDITBOX_ENTER events. 2514 EGET_EDITBOX_ENTER events.
2515 setPasswordBox/isPasswordBox to use the edit box for password input. 2515 setPasswordBox/isPasswordBox to use the edit box for password input.
2516 setTextAlignment, to align the text to left, right, top, bottom and centers 2516 setTextAlignment, to align the text to left, right, top, bottom and centers
2517 setAutoScroll, to enable and disable automatic scrolling with the cursor 2517 setAutoScroll, to enable and disable automatic scrolling with the cursor
2518 2518
2519 - IGUIStaticText new methods setDrawBorder and setTextAlignment. 2519 - IGUIStaticText new methods setDrawBorder and setTextAlignment.
2520 2520
2521 - IGUIListBox changes: 2521 - IGUIListBox changes:
2522 Added setAutoScrollEnabled and isAutoScrollEnabled, for automatic scrolling 2522 Added setAutoScrollEnabled and isAutoScrollEnabled, for automatic scrolling
2523 when selecting or adding an item. 2523 when selecting or adding an item.
2524 Scrollbars are now only visible when the list doesn't fit in the visible area. 2524 Scrollbars are now only visible when the list doesn't fit in the visible area.
2525 You can now type an item's text to select it. 2525 You can now type an item's text to select it.
2526 2526
2527 - IGUIScrollBar new methods set/getLargeStep 2527 - IGUIScrollBar new methods set/getLargeStep
2528 2528
2529------------------------------------------- 2529-------------------------------------------
2530Changes in version 1.3.1 (20 Jun 2007) 2530Changes in version 1.3.1 (20 Jun 2007)
2531 2531
2532 - Fixed a bug with negative exponents in fast_atof, posted by RVL 2532 - Fixed a bug with negative exponents in fast_atof, posted by RVL
2533 2533
2534 - renamed IAnimatedMeshSceneNode::getAbsoluteTransformation to 2534 - renamed IAnimatedMeshSceneNode::getAbsoluteTransformation to
2535 getMD3TagTransformation to avoid conflicts with 2535 getMD3TagTransformation to avoid conflicts with
2536 ISceneNode::getAbsoluteTransformation 2536 ISceneNode::getAbsoluteTransformation
2537 2537
2538 - Added rect::constrainTo for locking a rectangle inside another without 2538 - Added rect::constrainTo for locking a rectangle inside another without
2539 resizing it 2539 resizing it
2540 2540
2541 - Moved the OpenGL API functions from COpenGL driver into new extension 2541 - Moved the OpenGL API functions from COpenGL driver into new extension
2542 handler. Thereby, some renaming took place - the ARB and EXT suffix was 2542 handler. Thereby, some renaming took place - the ARB and EXT suffix was
2543 removed. Simply rename the functions in case you use them. 2543 removed. Simply rename the functions in case you use them.
2544 2544
2545 - matrix4 is now a template internally such that also int and double matrices 2545 - matrix4 is now a template internally such that also int and double matrices
2546 are possible now. 2546 are possible now.
2547 2547
2548 - CMeshBuffer is a new template replacing all previous SMeshBuffer* classes. 2548 - CMeshBuffer is a new template replacing all previous SMeshBuffer* classes.
2549 New mesh buffers can be easily implemented based on this code. 2549 New mesh buffers can be easily implemented based on this code.
2550 2550
2551 - Ogre 1.40 files now also load. 2551 - Ogre 1.40 files now also load.
2552 2552
2553 - New filename based methods in the MeshCache. 2553 - New filename based methods in the MeshCache.
2554 2554
2555 - CSphereSceneNode is now texture wrapped with sphere mapping by exactly one 2555 - CSphereSceneNode is now texture wrapped with sphere mapping by exactly one
2556 texture. Only a small error on the top remained. 2556 texture. Only a small error on the top remained.
2557 2557
2558 - The Sky box scene node now clamps its textures by default (meaning no 2558 - The Sky box scene node now clamps its textures by default (meaning no
2559 more ugly artifacts at the borders). 2559 more ugly artifacts at the borders).
2560 2560
2561 - Frustum culling fixed by using the fixed classifyPointRelation function. 2561 - Frustum culling fixed by using the fixed classifyPointRelation function.
2562 2562
2563 - Some fixes in the 3d basic structures: plane3d.classifyPointRelation now 2563 - Some fixes in the 3d basic structures: plane3d.classifyPointRelation now
2564 correctly returns the relation, it returned the opposite before. Also 2564 correctly returns the relation, it returned the opposite before. Also
2565 renamed existsInterSection to existsIntersection for consistency. 2565 renamed existsInterSection to existsIntersection for consistency.
2566 triangle3d.isOnSameSide is now private - it's just a helper class not 2566 triangle3d.isOnSameSide is now private - it's just a helper class not
2567 intended for further use. 2567 intended for further use.
2568 2568
2569 - Added IFileSystem::getFileDir, to get the directory when given a file 2569 - Added IFileSystem::getFileDir, to get the directory when given a file
2570 name. Submitted by Jeff Myers 2570 name. Submitted by Jeff Myers
2571 2571
2572 - Updated to latest PNG library (1.2.18), fixing a vulnerability. 2572 - Updated to latest PNG library (1.2.18), fixing a vulnerability.
2573 Also changed some data structures which should make the library 64bit 2573 Also changed some data structures which should make the library 64bit
2574 compatible. 2574 compatible.
2575 2575
2576 - Changed the external window pointer from s32 to void*. This makes the 2576 - Changed the external window pointer from s32 to void*. This makes the
2577 mechanism 64bit safe, but also breaks the API. You have to cast to 2577 mechanism 64bit safe, but also breaks the API. You have to cast to
2578 void* now. 2578 void* now.
2579 2579
2580 - Moved image scaling algorithms to CImage class and made them public. This 2580 - Moved image scaling algorithms to CImage class and made them public. This
2581 replaces lots of code from the hardware textures. It should also fix the 2581 replaces lots of code from the hardware textures. It should also fix the
2582 missing MipMaps in OpenGL if the driver does not support mipmap generation. 2582 missing MipMaps in OpenGL if the driver does not support mipmap generation.
2583 2583
2584 - Added support for texture creation flags in OpenGL. This changes some 2584 - Added support for texture creation flags in OpenGL. This changes some
2585 textures to other color formats than in previous versions. 2585 textures to other color formats than in previous versions.
2586 2586
2587 - MD2 normals fixed. 2587 - MD2 normals fixed.
2588 2588
2589 - Some defines for the platform choice have changed their names and semantics. 2589 - Some defines for the platform choice have changed their names and semantics.
2590 E.g. IRR_LINUX is now _IRR_LINUX_PLATFORM_ for os specific things and 2590 E.g. IRR_LINUX is now _IRR_LINUX_PLATFORM_ for os specific things and
2591 _IRR_USE_LINUX_DEVICE_ to choose the original X11 IrrLinux device. 2591 _IRR_USE_LINUX_DEVICE_ to choose the original X11 IrrLinux device.
2592 2592
2593 - Added an SDL device for cross-platform window support. Especially useful 2593 - Added an SDL device for cross-platform window support. Especially useful
2594 for embedded systems and others without hardware acceleration. This device 2594 for embedded systems and others without hardware acceleration. This device
2595 is mutually exclusive with the other devices and requires linking against 2595 is mutually exclusive with the other devices and requires linking against
2596 the SDL library. 2596 the SDL library.
2597 2597
2598 - Q3 shader crash fix. 2598 - Q3 shader crash fix.
2599 2599
2600 - Fixed the too small D3D texture bug. 2600 - Fixed the too small D3D texture bug.
2601 2601
2602 - The OpenGL texture is internally stored as a CImage now. 2602 - The OpenGL texture is internally stored as a CImage now.
2603 2603
2604 - Fixed some Borland compiler problems. 2604 - Fixed some Borland compiler problems.
2605 2605
2606 - ShadowVolume init bug fixed. 2606 - ShadowVolume init bug fixed.
2607 2607
2608 - MS3D rotation bug fixed. 2608 - MS3D rotation bug fixed.
2609 2609
2610 - setFrameLoop bug fixed. 2610 - setFrameLoop bug fixed.
2611 2611
2612 - Fixed OpenGL's draw2DImage texture inits to avoid texture confusion. 2612 - Fixed OpenGL's draw2DImage texture inits to avoid texture confusion.
2613 2613
2614 - Fixed getHeight from terrain scene node. 2614 - Fixed getHeight from terrain scene node.
2615 2615
2616 - The FPS counter now works as in previous releases, the accumulating counter 2616 - The FPS counter now works as in previous releases, the accumulating counter
2617 can be enabled by a parameter. 2617 can be enabled by a parameter.
2618 2618
2619 - getType() is now const correct (API Changes) 2619 - getType() is now const correct (API Changes)
2620 2620
2621 - Added scissor test to opengl draw2DImage method that ignored clip. 2621 - Added scissor test to opengl draw2DImage method that ignored clip.
2622 2622
2623 - Fixed a bug in rect::isValid, it was almost always true. 2623 - Fixed a bug in rect::isValid, it was almost always true.
2624 2624
2625 - Fixed wrong particle emission. 2625 - Fixed wrong particle emission.
2626 2626
2627 - Added LinuxDevice setResizeAble implementation. 2627 - Added LinuxDevice setResizeAble implementation.
2628 2628
2629 - Enumeration values of the ESCENE_NODE_TYPE enum are no longer ints but four 2629 - Enumeration values of the ESCENE_NODE_TYPE enum are no longer ints but four
2630 character codes. If you were using them as index previously, this is no longer possible. 2630 character codes. If you were using them as index previously, this is no longer possible.
2631 2631
2632 - There is now a way to set which scene manager should recieve user input, when working 2632 - There is now a way to set which scene manager should recieve user input, when working
2633 with multiple scene managers: IrrlichtDevice::setInputReceivingSceneManager(). 2633 with multiple scene managers: IrrlichtDevice::setInputReceivingSceneManager().
2634 2634
2635 - ICursorControl now supports setting a reference rectangle. 2635 - ICursorControl now supports setting a reference rectangle.
2636 If this rect is set, the cursor position is not being calculated relative to 2636 If this rect is set, the cursor position is not being calculated relative to
2637 the rendering window but to this rect. You can set the rect pointer to 0 to disable 2637 the rendering window but to this rect. You can set the rect pointer to 0 to disable
2638 this feature again. This feature is useful when rendering into parts of foreign windows 2638 this feature again. This feature is useful when rendering into parts of foreign windows
2639 for example in an editor. See ICursorControl::setReferenceRect() for details. 2639 for example in an editor. See ICursorControl::setReferenceRect() for details.
2640 (Windows only implementation currently) 2640 (Windows only implementation currently)
2641 2641
2642 - It is now possible to clone single scene nodes (ISceneNode::clone()) and to create copies 2642 - It is now possible to clone single scene nodes (ISceneNode::clone()) and to create copies
2643 of a whole scene graph (ISceneManager::createNewSceneManager(cloneContent=true); 2643 of a whole scene graph (ISceneManager::createNewSceneManager(cloneContent=true);
2644 2644
2645 - IAttributes now supports a user pointer (void*) 2645 - IAttributes now supports a user pointer (void*)
2646 2646
2647 - Added query methods to scene manager: Find Scene nodes by type 2647 - Added query methods to scene manager: Find Scene nodes by type
2648 getSceneNodesFromType 2648 getSceneNodesFromType
2649 2649
2650 - Added min and max functions with 3 values: core::min_ and core::max_ 2650 - Added min and max functions with 3 values: core::min_ and core::max_
2651 2651
2652 - Fixed a crash when using Octtrees caused by unnecessary dropping of meshes when 2652 - Fixed a crash when using Octtrees caused by unnecessary dropping of meshes when
2653 deserializing the scene node. 2653 deserializing the scene node.
2654 2654
2655 - Removed an array::erase from Octtrees and Octtree triangle selector. 2655 - Removed an array::erase from Octtrees and Octtree triangle selector.
2656 2656
2657 - Removed a bug which caused irrlicht to crash when using animated .x files as static meshes. 2657 - Removed a bug which caused irrlicht to crash when using animated .x files as static meshes.
2658 2658
2659GUI: 2659GUI:
2660 2660
2661 - Added EGUI_DEFAULT_FONT for skins, default fonts can now be set for windows, menus, buttons and tooltips. 2661 - Added EGUI_DEFAULT_FONT for skins, default fonts can now be set for windows, menus, buttons and tooltips.
2662 use IGUISkin::setFont and getFont to use them. Fonts are not serialized with saveGUI yet 2662 use IGUISkin::setFont and getFont to use them. Fonts are not serialized with saveGUI yet
2663 2663
2664 - Added EGDC_TOOLTIP_BACKGROUND for setting background color of tooltips. 2664 - Added EGDC_TOOLTIP_BACKGROUND for setting background color of tooltips.
2665 2665
2666 - Tooltips now appear relative to mouse position, also they do not appear for 500ms. 2666 - Tooltips now appear relative to mouse position, also they do not appear for 500ms.
2667 2667
2668 - Fixed a memory leak when dropping the GUIEnvironment when a tooltip was present. 2668 - Fixed a memory leak when dropping the GUIEnvironment when a tooltip was present.
2669 2669
2670 - Added IGUIStaticText::setDrawBackground and IGUIStaticText::setBackgroundColor. 2670 - Added IGUIStaticText::setDrawBackground and IGUIStaticText::setBackgroundColor.
2671 2671
2672 - Fixed a messagebox focus bug when no 'okay' button was present. 2672 - Fixed a messagebox focus bug when no 'okay' button was present.
2673 2673
2674 - Added setColor and setScaleImage to GUIImage. 2674 - Added setColor and setScaleImage to GUIImage.
2675 2675
2676 - GUIListBox highlighted area now clips properly. 2676 - GUIListBox highlighted area now clips properly.
2677 2677
2678 - added getOSOperator to GUIEnvironment (for clipboard access in elements) and updated CGUIEditBox. 2678 - added getOSOperator to GUIEnvironment (for clipboard access in elements) and updated CGUIEditBox.
2679 2679
2680 - Can now load/save gui environment from/to an element. 2680 - Can now load/save gui environment from/to an element.
2681 2681
2682 - Most element set functions now have a corresponding get or is function. 2682 - Most element set functions now have a corresponding get or is function.
2683 (API change) IGUIButton::getUseAlphaChannel is now isAlphaChannelUsed, to fit with other is* functions. 2683 (API change) IGUIButton::getUseAlphaChannel is now isAlphaChannelUsed, to fit with other is* functions.
2684 2684
2685 - Fixed a bug with resizing the gui environment when the device is resized 2685 - Fixed a bug with resizing the gui environment when the device is resized
2686 2686
2687 - Modal screens now resize to fit their parent. 2687 - Modal screens now resize to fit their parent.
2688 2688
2689 - XML bitmap fonts now load textures from the XML file directory rather than the current one. 2689 - XML bitmap fonts now load textures from the XML file directory rather than the current one.
2690 2690
2691 - Fixed a small bug with click areas in combo boxes. 2691 - Fixed a small bug with click areas in combo boxes.
2692 2692
2693 - Fixed a bug in clear() when an element was hovered or had focus 2693 - Fixed a bug in clear() when an element was hovered or had focus
2694 2694
2695 - Fixed a bug when loading fonts with uppercase letters in the name in case-sensitive filesystems 2695 - Fixed a bug when loading fonts with uppercase letters in the name in case-sensitive filesystems
2696 2696
2697GUI Editor: 2697GUI Editor:
2698 2698
2699 - Added cut/copy/paste using clipboard and xml (via memory file). Will have problems in Linux due 2699 - Added cut/copy/paste using clipboard and xml (via memory file). Will have problems in Linux due
2700 to no clipboard support 2700 to no clipboard support
2701 2701
2702 - Added texture attribute element 2702 - Added texture attribute element
2703 2703
2704 - Added CGUIPanel, a container with optional scrollbars. Originally submitted by Asger Feldthaus 2704 - Added CGUIPanel, a container with optional scrollbars. Originally submitted by Asger Feldthaus
2705 2705
2706------------------------------------------- 2706-------------------------------------------
2707Changes in version 1.3 (15 Mar 2007) 2707Changes in version 1.3 (15 Mar 2007)
2708 2708
2709- SMaterial structure changed: 2709- SMaterial structure changed:
2710 - Enable Irrlicht to change TextureAddress Mode (Clamping), for each layer separately 2710 - Enable Irrlicht to change TextureAddress Mode (Clamping), for each layer separately
2711 - Added Texture matrices to SMaterial for all texture layers 2711 - Added Texture matrices to SMaterial for all texture layers
2712 - Removed the anonymous union/struct access to textures and material flags. 2712 - Removed the anonymous union/struct access to textures and material flags.
2713 Now, Texture1..4 is removed - use Textures[i] instead 2713 Now, Texture1..4 is removed - use Textures[i] instead
2714 The Flags[x] is replaced by setFlags(x, bool) resp. getFlags(x) 2714 The Flags[x] is replaced by setFlags(x, bool) resp. getFlags(x)
2715 2715
2716- The methods OnPreRender and OnPostRender of ISceneNode have been changed to 2716- The methods OnPreRender and OnPostRender of ISceneNode have been changed to
2717 OnRegisterSceneNode() and OnAnimate(). Also, they are now called at different 2717 OnRegisterSceneNode() and OnAnimate(). Also, they are now called at different
2718 times: OnAnimate is called every frame before anything else, removing the 2718 times: OnAnimate is called every frame before anything else, removing the
2719 one-frame-lag Irrlicht suffered until now. To make most of your own scene 2719 one-frame-lag Irrlicht suffered until now. To make most of your own scene
2720 nodes work again, it should be enough to rename OnPreRender() 2720 nodes work again, it should be enough to rename OnPreRender()
2721 to OnRegisterSceneNode() and OnPostRender() to OnAnimate() in most cases. 2721 to OnRegisterSceneNode() and OnPostRender() to OnAnimate() in most cases.
2722 2722
2723- ISceneNode::getMaterialCount and getMaterial now use u32 instead of s32. You will also need 2723- ISceneNode::getMaterialCount and getMaterial now use u32 instead of s32. You will also need
2724 to update this in your custom scene nodes. 2724 to update this in your custom scene nodes.
2725 2725
2726- matrix4 speed enhancement, testing for identity before multiply. faster check for identity 2726- matrix4 speed enhancement, testing for identity before multiply. faster check for identity
2727 for the positive case using an additional boolean flag. 2727 for the positive case using an additional boolean flag.
2728 The internal array M is now private, changing the API. Use mat[x] instead of mat.M[x]. 2728 The internal array M is now private, changing the API. Use mat[x] instead of mat.M[x].
2729 The pointer to M is acquired by mat.pointer(), some methods take a matrix4 reference 2729 The pointer to M is acquired by mat.pointer(), some methods take a matrix4 reference
2730 instead of a f32*. 2730 instead of a f32*.
2731 2731
2732- Some more suppport for tangent meshes 2732- Some more suppport for tangent meshes
2733 2733
2734- Several alpha blend fixes in several drivers and methods 2734- Several alpha blend fixes in several drivers and methods
2735 2735
2736Font improvements: 2736Font improvements:
2737 2737
2738 - Changed built-in IGUIFont to IGUIFontBitmap and added options for more fonts. 2738 - Changed built-in IGUIFont to IGUIFontBitmap and added options for more fonts.
2739 CGUIFont now supports UCS-2 and may span many textures, loads from XML (Unicode support planned) 2739 CGUIFont now supports UCS-2 and may span many textures, loads from XML (Unicode support planned)
2740 2740
2741 - Started a font tool for creating the new XML fonts, including generating vector fonts 2741 - Started a font tool for creating the new XML fonts, including generating vector fonts
2742 (currently not backward compatible with old fonts, only works for Win2K+, some bugs still) 2742 (currently not backward compatible with old fonts, only works for Win2K+, some bugs still)
2743 2743
2744 - Font interface now supports kerning- kerning pairs, per letter and global kerning widths, 2744 - Font interface now supports kerning- kerning pairs, per letter and global kerning widths,
2745 although he internal font only supports global and per-letter. 2745 although he internal font only supports global and per-letter.
2746 2746
2747 - added _IRR_COMPILE_WITH_SOFTWARE_ and _IRR_COMPILE_WITH_BURNINGSVIDEO_ to compile config 2747 - added _IRR_COMPILE_WITH_SOFTWARE_ and _IRR_COMPILE_WITH_BURNINGSVIDEO_ to compile config
2748 2748
2749 2749
2750- GUI enhancements: 2750- GUI enhancements:
2751 2751
2752 - GUI Serialization with loadGUI and saveGUI, and serializable custom GUI elements via factories 2752 - GUI Serialization with loadGUI and saveGUI, and serializable custom GUI elements via factories
2753 2753
2754 - Started a GUI Editor as a GUI element factory example (work in progress) 2754 - Started a GUI Editor as a GUI element factory example (work in progress)
2755 2755
2756 - New IGUIElement functions: isSubElement & setSubElement for child elements created by their parents 2756 - New IGUIElement functions: isSubElement & setSubElement for child elements created by their parents
2757 (eg. a scrollbar on a list box). Set it if you don't want an element to be serialized 2757 (eg. a scrollbar on a list box). Set it if you don't want an element to be serialized
2758 2758
2759 - New GUI event, EGET_ELEMENT_FOCUSED 2759 - New GUI event, EGET_ELEMENT_FOCUSED
2760 2760
2761 - GUI environment ELEMENT_FOCUS_LOST event now sets the element as the caller, focus_lost events 2761 - GUI environment ELEMENT_FOCUS_LOST event now sets the element as the caller, focus_lost events
2762 are now usually passed to parent elements, so elements now check if they are the caller before 2762 are now usually passed to parent elements, so elements now check if they are the caller before
2763 updating (so users can catch focus lost events without them being eaten by the elements) 2763 updating (so users can catch focus lost events without them being eaten by the elements)
2764 2764
2765 - Buttons, checkboxes and tab controls now only activate when the mouse is released over them. 2765 - Buttons, checkboxes and tab controls now only activate when the mouse is released over them.
2766 2766
2767 - Windows mouse-up events are now caught outside the window, so mouse coords may now be negative. 2767 - Windows mouse-up events are now caught outside the window, so mouse coords may now be negative.
2768 could cause problems with draggable user windows, as they may now be dragged off screen. 2768 could cause problems with draggable user windows, as they may now be dragged off screen.
2769 2769
2770 - Elements can now automatically resize to fit their parents, or align themselves to an edge: 2770 - Elements can now automatically resize to fit their parents, or align themselves to an edge:
2771 setAlignment(left, right, top, bottom) - sets how each edge aligns to its parent, 2771 setAlignment(left, right, top, bottom) - sets how each edge aligns to its parent,
2772 through EGUI_ALIGNMENT enum 2772 through EGUI_ALIGNMENT enum
2773 EGUIA_UPPERLEFT - default behavior, aligns to top or left edge 2773 EGUIA_UPPERLEFT - default behavior, aligns to top or left edge
2774 EGUIA_LOWERRIGHT - aligns to the lower or right edge 2774 EGUIA_LOWERRIGHT - aligns to the lower or right edge
2775 EGUIA_CENTER - moves relative to the center of its parent 2775 EGUIA_CENTER - moves relative to the center of its parent
2776 EGUIA_SCALE - uses relative scale 2776 EGUIA_SCALE - uses relative scale
2777 2777
2778 - setMaxSize, setMinSize - sets the maximum and minimum sizes for automatic resizing, 2778 - setMaxSize, setMinSize - sets the maximum and minimum sizes for automatic resizing,
2779 use 0 for no maximum size. 2779 use 0 for no maximum size.
2780 2780
2781 - setRelativePosition now takes a rect<f32> for relative positioning within their parents 2781 - setRelativePosition now takes a rect<f32> for relative positioning within their parents
2782 2782
2783 - getFileSystem added to the GUI environment 2783 - getFileSystem added to the GUI environment
2784 2784
2785 - New IGUISpriteBank, used to hold 2d image data like fonts and GUI icons. 2785 - New IGUISpriteBank, used to hold 2d image data like fonts and GUI icons.
2786 Icons provided by the built-in font are now accessed through the skin's sprite bank. 2786 Icons provided by the built-in font are now accessed through the skin's sprite bank.
2787 Users can override the icons by setting a different sprite bank and setting new sprites. 2787 Users can override the icons by setting a different sprite bank and setting new sprites.
2788 2788
2789 - Skins are now serializable and are loaded/saved with the GUI. 2789 - Skins are now serializable and are loaded/saved with the GUI.
2790 2790
2791 - IGUIStaticText getter/setter functions patch by rogerborg. 2791 - IGUIStaticText getter/setter functions patch by rogerborg.
2792 2792
2793- added 3d TextSceneNode2. to view a Text in real 3D Space 2793- added 3d TextSceneNode2. to view a Text in real 3D Space
2794 in fact it is a combination of Billboard & TextSceneNode 2794 in fact it is a combination of Billboard & TextSceneNode
2795 2795
2796- Burning Video (the second but only complete software renderer) 2796- Burning Video (the second but only complete software renderer)
2797 - New Compile Config BURNINGVIDEO_RENDERER_ULTRA_FAST 2797 - New Compile Config BURNINGVIDEO_RENDERER_ULTRA_FAST
2798 - New Compile Config BURNINGVIDEO_RENDERER_FAST 2798 - New Compile Config BURNINGVIDEO_RENDERER_FAST
2799 touching the 20fps border in the demo ( P4 mobile 2Ghz ). 15fps average. 2799 touching the 20fps border in the demo ( P4 mobile 2Ghz ). 15fps average.
2800 ( Compile config Release Fast-FPU ) 2800 ( Compile config Release Fast-FPU )
2801 2801
2802 - VertexCache for Tansformed & Light Vertices 2802 - VertexCache for Tansformed & Light Vertices
2803 boost small drawPrimitive Calls ( 2DRectangle, Billboard ) and Real Index Triangles 2803 boost small drawPrimitive Calls ( 2DRectangle, Billboard ) and Real Index Triangles
2804 2804
2805 - Bilinear Dither 2805 - Bilinear Dither
2806 - clipping test ( compare instead of generic plane normal ) 2806 - clipping test ( compare instead of generic plane normal )
2807 - support for NOT using vertexcolor 2807 - support for NOT using vertexcolor
2808 #define SOFTWARE_DRIVER_2_USE_VERTEX_COLOR 2808 #define SOFTWARE_DRIVER_2_USE_VERTEX_COLOR
2809 2809
2810- added vertex to color to billboard. 2810- added vertex to color to billboard.
2811 shade top & shade down. 2811 shade top & shade down.
2812 to support some static lighting effect on billboards 2812 to support some static lighting effect on billboards
2813 2813
2814- Implemented line rendering for SoftwareDriver 2814- Implemented line rendering for SoftwareDriver
2815 2815
2816- XMLWriter fix for 32bit wchar_t (esp. for big endian) 2816- XMLWriter fix for 32bit wchar_t (esp. for big endian)
2817 2817
2818- updated to latest PNG library 2818- updated to latest PNG library
2819 2819
2820- implemented CImagerWriterJpeg::writeImage 2820- implemented CImagerWriterJpeg::writeImage
2821 2821
2822- The ISceneManager::addCameraSceneNodeFPS() has a new parameter named 'jumpSpeed' 2822- The ISceneManager::addCameraSceneNodeFPS() has a new parameter named 'jumpSpeed'
2823 and a Key Map Entry. 2823 and a Key Map Entry.
2824 2824
2825- added param to IIImageWriteFile::writeImage 2825- added param to IIImageWriteFile::writeImage
2826 control Parameter for the backend ( e.g. jpeg compression level ) 2826 control Parameter for the backend ( e.g. jpeg compression level )
2827 2827
2828- addContextMenu: CGUIEnvironment::addContextMenu set the focus on the submenu. 2828- addContextMenu: CGUIEnvironment::addContextMenu set the focus on the submenu.
2829 2829
2830- Added IFileSystem::createMemoryReadFile for accessing memory like a file. 2830- Added IFileSystem::createMemoryReadFile for accessing memory like a file.
2831 2831
2832- Added core::map class submitted by Nastase Catalin (Kat'Oun) 2832- Added core::map class submitted by Nastase Catalin (Kat'Oun)
2833 2833
2834- Fix vertex colors for .x and .ms3d, alpha bug in .obj 2834- Fix vertex colors for .x and .ms3d, alpha bug in .obj
2835 2835
2836- Fixed 16bit depth screens under Windows. 2836- Fixed 16bit depth screens under Windows.
2837 2837
2838- Implemented getMeshBuffer(SMaterial) for all AnimatedMeshes. 2838- Implemented getMeshBuffer(SMaterial) for all AnimatedMeshes.
2839 It was returning 0 for all implementations previously. User defined IMesh derivates 2839 It was returning 0 for all implementations previously. User defined IMesh derivates
2840 will also have to implement it now due to the removed empty implementation. 2840 will also have to implement it now due to the removed empty implementation.
2841 2841
2842- Added yield() method to IrrlichtDevice which allows to pause the Irrlicht process for 2842- Added yield() method to IrrlichtDevice which allows to pause the Irrlicht process for
2843 a very short time. This allows other processes to execute without a major 2843 a very short time. This allows other processes to execute without a major
2844 penalty for the Irrlicht application. 2844 penalty for the Irrlicht application.
2845 2845
2846- Added sleep() methd to IrrlichtDevice, for pausing the Irrlicht process for a longer 2846- Added sleep() methd to IrrlichtDevice, for pausing the Irrlicht process for a longer
2847 amount of time. 2847 amount of time.
2848 2848
2849- Auto-split mesh to 16bit buffers in 3ds loader 2849- Auto-split mesh to 16bit buffers in 3ds loader
2850 2850
2851- 8bit RGB332 image format support 2851- 8bit RGB332 image format support
2852 2852
2853- isActive() under Linux now behaves like the Windows variant: True iff window has focus 2853- isActive() under Linux now behaves like the Windows variant: True iff window has focus
2854 2854
2855- Fixed(?) the glXGetProcAddress problems with different drivers 2855- Fixed(?) the glXGetProcAddress problems with different drivers
2856 2856
2857- B3D changes by Luke: 2857- B3D changes by Luke:
2858 Texture scaling bugfix, support for alpha blending, new option to normalise weights, 2858 Texture scaling bugfix, support for alpha blending, new option to normalise weights,
2859 animation code optimization, fixed memory leak 2859 animation code optimization, fixed memory leak
2860 2860
2861- ROUNDING_ERROR is now ROUNDING_ERROR_f32 or ROUNDING_ERROR_f64 2861- ROUNDING_ERROR is now ROUNDING_ERROR_f32 or ROUNDING_ERROR_f64
2862 2862
2863- Material ZBuffer flag changed to a u32 value 2863- Material ZBuffer flag changed to a u32 value
2864 Reason: change ( off or on ) to , off, lequal, equal 2864 Reason: change ( off or on ) to , off, lequal, equal
2865 Necessary for multi-pass if previous stage has had transparency 2865 Necessary for multi-pass if previous stage has had transparency
2866 2866
2867- DebugDataVisible is now an enum of flags 2867- DebugDataVisible is now an enum of flags
2868 show normals is supported ( uses the new build in arrowmesh ) 2868 show normals is supported ( uses the new build in arrowmesh )
2869 2869
2870- New Function: GeometryCreator 2870- New Function: GeometryCreator
2871 addArrowMesh. build a closed cylinder and a cone 2871 addArrowMesh. build a closed cylinder and a cone
2872 used to show normals as debug feature 2872 used to show normals as debug feature
2873 2873
2874- New Function: 2874- New Function:
2875 CMeshManipulator::transformMesh(scene::IMesh* mesh, const core::matrix4& m) const 2875 CMeshManipulator::transformMesh(scene::IMesh* mesh, const core::matrix4& m) const
2876 transforms VertexPosition and VertexNormal 2876 transforms VertexPosition and VertexNormal
2877 2877
2878- BUGFIX: CGUIButton notified Pressed when Mouse was clicked Inside ( correct ) 2878- BUGFIX: CGUIButton notified Pressed when Mouse was clicked Inside ( correct )
2879 but also left up outside rectangle ( incorrect) 2879 but also left up outside rectangle ( incorrect)
2880 2880
2881- BUGFIX: Octree:getPolys(const scene::SViewFrustum& frustum, SIndexData* idxdata) 2881- BUGFIX: Octree:getPolys(const scene::SViewFrustum& frustum, SIndexData* idxdata)
2882 was recursive calling invisible children 2882 was recursive calling invisible children
2883 2883
2884- CFileList: Changed FileListEntry sorting to 2884- CFileList: Changed FileListEntry sorting to
2885 a) Directory comes first 2885 a) Directory comes first
2886 b) sorting ignores case 2886 b) sorting ignores case
2887 so it feel's more like common browers 2887 so it feel's more like common browers
2888 2888
2889- added a Texture transform to IVideoDriver::setTransform 2889- added a Texture transform to IVideoDriver::setTransform
2890 2890
2891- quaternion::getmatrix 2891- quaternion::getmatrix
2892 in fact the getmatrix version is returning the transposed. 2892 in fact the getmatrix version is returning the transposed.
2893 i'm quite sure that this is the wrong implementation. 2893 i'm quite sure that this is the wrong implementation.
2894 so this should be verified to remove the getmatrix_transposed version... 2894 so this should be verified to remove the getmatrix_transposed version...
2895 2895
2896- Quake3 Map Loader: 2896- Quake3 Map Loader:
2897 new loading method 2897 new loading method
2898 - Bezier Patches with LOD more than 3 2898 - Bezier Patches with LOD more than 3
2899 - Multiple Meshes, stay compatible with the previous version 2899 - Multiple Meshes, stay compatible with the previous version
2900 - Indexed Triangle List 2900 - Indexed Triangle List
2901 - initial support for quake3 Shaders and Entities 2901 - initial support for quake3 Shaders and Entities
2902 - Shaders are parsed. When it's possible to resolve a 2 Texture Scheme it's taken 2902 - Shaders are parsed. When it's possible to resolve a 2 Texture Scheme it's taken
2903 Shaders exist in namespace scene::quake3 2903 Shaders exist in namespace scene::quake3
2904 - The Example Quake3Map shows how to continue applying the Q3Shaders with SceneNodes 2904 - The Example Quake3Map shows how to continue applying the Q3Shaders with SceneNodes
2905 ( for example animmap converts to TextureAnimator.) 2905 ( for example animmap converts to TextureAnimator.)
2906 TODO: use the Irrlicht Variable Syntax to remove redundant code.. 2906 TODO: use the Irrlicht Variable Syntax to remove redundant code..
2907 2907
2908- added getVertexPitch() to IMeshBuffer interface 2908- added getVertexPitch() to IMeshBuffer interface
2909 2909
2910- added generic isupper, isspace.. functions to coreutil.h to remove dependencies for ctype.h 2910- added generic isupper, isspace.. functions to coreutil.h to remove dependencies for ctype.h
2911 ( future: it's possibly to use binary comparison test..) 2911 ( future: it's possibly to use binary comparison test..)
2912 removed 1000's include of string.h and moved one to irrstring.h 2912 removed 1000's include of string.h and moved one to irrstring.h
2913 in preparing of complete removing the MSVC. 2913 in preparing of complete removing the MSVC.
2914 2914
2915- moved fast_atof.h to the public include 2915- moved fast_atof.h to the public include
2916 added strtol10 to remove dependencies for stdlib.h 2916 added strtol10 to remove dependencies for stdlib.h
2917 anyway math.h is needed for powf 2917 anyway math.h is needed for powf
2918 2918
2919- core::vector3d 2919- core::vector3d
2920 added getInterpolated_quadratic. 2920 added getInterpolated_quadratic.
2921 vector3d<T> getInterpolated_quadratic(const vector3d<T>& v2, const vector3d<T>& v3, const T d) const 2921 vector3d<T> getInterpolated_quadratic(const vector3d<T>& v2, const vector3d<T>& v3, const T d) const
2922 // this*(1-d)*(1-d) + 2 * v2 * (1-d) + v3 * d * d; 2922 // this*(1-d)*(1-d) + 2 * v2 * (1-d) + v3 * d * d;
2923 2923
2924- irrstring: added param start to findLast(T c, s32 start = -1 ) 2924- irrstring: added param start to findLast(T c, s32 start = -1 )
2925 reason: to continue searching reverse on a specific position 2925 reason: to continue searching reverse on a specific position
2926 (parameter is checked against boundaries ) 2926 (parameter is checked against boundaries )
2927 2927
2928- added operation reciprocal_squareroot to irrmath. 2928- added operation reciprocal_squareroot to irrmath.
2929 core::reciprocal_squareroot = 1.f / sqrtf ( x ) 2929 core::reciprocal_squareroot = 1.f / sqrtf ( x )
2930 changed the core::vector3df normalize vector. 2930 changed the core::vector3df normalize vector.
2931 specialized templates are not allowed in irrlicht currently, so it's only for f32 for now. 2931 specialized templates are not allowed in irrlicht currently, so it's only for f32 for now.
2932 a C function and a NVidia Version are in irrmath.h 2932 a C function and a NVidia Version are in irrmath.h
2933 2933
2934- add Primitives to CFPSCounter 2934- add Primitives to CFPSCounter
2935 and changed interpolation to 1500ms instead of 2000ms 2935 and changed interpolation to 1500ms instead of 2000ms
2936 and rounding to ceiling.. 2936 and rounding to ceiling..
2937 2937
2938- added Interface setAmbientLight to ISceneManager 2938- added Interface setAmbientLight to ISceneManager
2939 it was a Bug, because SceneManager always calls Driver therefore AmbientLight has to be set in SceneManager. 2939 it was a Bug, because SceneManager always calls Driver therefore AmbientLight has to be set in SceneManager.
2940 2940
2941- changed GUIFont & FontTool to support kerning ( on a global basis ) 2941- changed GUIFont & FontTool to support kerning ( on a global basis )
2942 very basic mode.. apply an offset for position 2942 very basic mode.. apply an offset for position
2943 useful for example if you want to apply an outline stroke in your favorite 2943 useful for example if you want to apply an outline stroke in your favorite
2944 and therefore let the texture grow. 2944 and therefore let the texture grow.
2945 and to correct the border back on drawing, specify the parameter in IGUIFont. 2945 and to correct the border back on drawing, specify the parameter in IGUIFont.
2946 this is quite useful if you want to use more artistic fonts. 2946 this is quite useful if you want to use more artistic fonts.
2947 default = 0 2947 default = 0
2948 better kerning would need a seperate coordinate set for each symbol. 2948 better kerning would need a seperate coordinate set for each symbol.
2949 2949
2950- changed MD2_FRAME_SHIFT to lower framerate 2950- changed MD2_FRAME_SHIFT to lower framerate
2951 -> lower IPol 2951 -> lower IPol
2952 problems can occur if somebody uses hardcoded frame-numbers instead 2952 problems can occur if somebody uses hardcoded frame-numbers instead
2953 of Animation name... 2953 of Animation name...
2954 2954
2955- changed spelling "frustrum" to "frustum" 2955- changed spelling "frustrum" to "frustum"
2956 2956
2957 -> changed also SViewFrustrum.h to SViewFrustum.h 2957 -> changed also SViewFrustrum.h to SViewFrustum.h
2958 2958
2959- changed Parameter AutomaticCulling from bool to enum E_CULLING_TYPE 2959- changed Parameter AutomaticCulling from bool to enum E_CULLING_TYPE
2960 to support more than two culling modes. 2960 to support more than two culling modes.
2961 2961
2962 added Frustum culling ( it's a copy & paste from the octree ) 2962 added Frustum culling ( it's a copy & paste from the octree )
2963 added initial bounding sphere 2963 added initial bounding sphere
2964 used for culling point lights.. 2964 used for culling point lights..
2965 2965
2966- Added getSystemMemory and getProcessorSpeedMHz for Windows and Linux to the OSOperator, submitted by Vitek. 2966- Added getSystemMemory and getProcessorSpeedMHz for Windows and Linux to the OSOperator, submitted by Vitek.
2967 2967
2968------------------------------------------- 2968-------------------------------------------
2969Changes in version 1.2 (29 Nov 2006) 2969Changes in version 1.2 (29 Nov 2006)
2970 2970
2971- Added Solaris/Sparc port (basically some compiler define statements). Irrlicht and the examples should compile out-of-the-box on Suns with the usual Makefiles and gnumake. 2971- Added Solaris/Sparc port (basically some compiler define statements). Irrlicht and the examples should compile out-of-the-box on Suns with the usual Makefiles and gnumake.
2972 2972
2973- Added texture matrix support for hardware accelerated drivers. This allows for efficient texture coord manipulations for complete meshes at once. 2973- Added texture matrix support for hardware accelerated drivers. This allows for efficient texture coord manipulations for complete meshes at once.
2974 2974
2975- Multisampling with OpenGL under Linux added 2975- Multisampling with OpenGL under Linux added
2976 2976
2977- Non-power-of-two textures are left unscaled if the driver supports such textures. 2977- Non-power-of-two textures are left unscaled if the driver supports such textures.
2978 2978
2979- new draw2DImage method that speeds up drawing many quads from the same texture. Font drawing is improved by this under OpenGL. 2979- new draw2DImage method that speeds up drawing many quads from the same texture. Font drawing is improved by this under OpenGL.
2980 2980
2981- TGA files are now always correctly flipped and loaded if compressed. All PNG color formats are now supported, including correct alpha handling. 2981- TGA files are now always correctly flipped and loaded if compressed. All PNG color formats are now supported, including correct alpha handling.
2982 2982
2983- 3ds mesh loader fix in texture loading, now loads some textures that were not loaded before, but might introduce problems with very recent files. OGRE mesh loader bugfixes and lightmap support. Several B3d mesh loader updates. Obj and mtl loader enhancements. 2983- 3ds mesh loader fix in texture loading, now loads some textures that were not loaded before, but might introduce problems with very recent files. OGRE mesh loader bugfixes and lightmap support. Several B3d mesh loader updates. Obj and mtl loader enhancements.
2984 2984
2985- A new compile flag (IRR_OPENGL_USE_EXTPOINTER) allows Irrlicht to either use OpenGL extension function pointers or direct OpenGL calls. 2985- A new compile flag (IRR_OPENGL_USE_EXTPOINTER) allows Irrlicht to either use OpenGL extension function pointers or direct OpenGL calls.
2986 2986
2987- OpenGL now uses frame buffer objects for render targets larger than the screen, supplied by Mandrav 2987- OpenGL now uses frame buffer objects for render targets larger than the screen, supplied by Mandrav
2988 2988
2989- Split ESNRP_LIGHT_AND_CAMERA passes into ESNRP_LIGHT and ESNRP_CAMERA to fix a problem with lights being rendered before cameras in OpenGL (thanks again to Vitek for finding this). ESNRP_LIGHT_AND_CAMERA is now deprecated. 2989- Split ESNRP_LIGHT_AND_CAMERA passes into ESNRP_LIGHT and ESNRP_CAMERA to fix a problem with lights being rendered before cameras in OpenGL (thanks again to Vitek for finding this). ESNRP_LIGHT_AND_CAMERA is now deprecated.
2990 2990
2991- Fixed many OpenGL render state problems which were related to wrong texture states. The textures are now enabled and disabled by the material renderers in OnSetMaterial. Also enabled the texture state cache which helps preventing texture changes just as the one for D3Dx. Thanks to hey_i_am_real for some good hints on where the problem was located. 2991- Fixed many OpenGL render state problems which were related to wrong texture states. The textures are now enabled and disabled by the material renderers in OnSetMaterial. Also enabled the texture state cache which helps preventing texture changes just as the one for D3Dx. Thanks to hey_i_am_real for some good hints on where the problem was located.
2992 2992
2993- Added compile flag _IRR_COMPILE_WITH_X11_ which is by default enabled. Disabling the flag removes all X11 dependencies from Irrlicht and allows for a headless Linux Irrlicht server - added by request :-) 2993- Added compile flag _IRR_COMPILE_WITH_X11_ which is by default enabled. Disabling the flag removes all X11 dependencies from Irrlicht and allows for a headless Linux Irrlicht server - added by request :-)
2994 2994
2995- Win32 OpenGL driver tries to use the requested bpp size. 2995- Win32 OpenGL driver tries to use the requested bpp size.
2996 2996
2997- Default texture format is now A8R8G8B8 if not explicitly specified. This fixes some color artifacts with lightmaps. Bugfix submitted by hey_i_am_real. 2997- Default texture format is now A8R8G8B8 if not explicitly specified. This fixes some color artifacts with lightmaps. Bugfix submitted by hey_i_am_real.
2998 2998
2999- In OnPostRender all transformations were taken as relative and multiplied with the root transformation matrix every time due to a wrong check for the real root node. This shoudl increase render performance for scenes with lots of (invisible) nodes. 2999- In OnPostRender all transformations were taken as relative and multiplied with the root transformation matrix every time due to a wrong check for the real root node. This shoudl increase render performance for scenes with lots of (invisible) nodes.
3000 3000
3001- Added correct list copy constructor. 3001- Added correct list copy constructor.
3002 3002
3003- Color selection dialog added. 3003- Color selection dialog added.
3004 3004
3005- New GUI skin "Burning Skin". 3005- New GUI skin "Burning Skin".
3006 it's a black & white skin. look elegant on true-color. 3006 it's a black & white skin. look elegant on true-color.
3007 and looks ok on 1-Bit ( e.g. no vertex color in burnings video ) 3007 and looks ok on 1-Bit ( e.g. no vertex color in burnings video )
3008 3008
3009- GUIStatic text is correctly grayed out if disabled. 3009- GUIStatic text is correctly grayed out if disabled.
3010 3010
3011- Added getHeight method for terrain node submitted by Spintz. It calculates the height from the base mesh instead of requiring ray casts and collision detection and is much faster. 3011- Added getHeight method for terrain node submitted by Spintz. It calculates the height from the base mesh instead of requiring ray casts and collision detection and is much faster.
3012 3012
3013- New methods core::lerp to linearly interpolate two floats and SColor.getLuminance to calculate luminance of RGB color. 3013- New methods core::lerp to linearly interpolate two floats and SColor.getLuminance to calculate luminance of RGB color.
3014 3014
3015- MAJOR API CHANGE: 3015- MAJOR API CHANGE:
3016 Fixed matrix access methods mat(x,y). These were previously said to be (row,column) but actually were (column, row). This lead to some confusion and made their use quite tricky. Irrlicht code is updated for the new method, but applications will silently fail now (i.e. compile without errors, but not working as expected). 3016 Fixed matrix access methods mat(x,y). These were previously said to be (row,column) but actually were (column, row). This lead to some confusion and made their use quite tricky. Irrlicht code is updated for the new method, but applications will silently fail now (i.e. compile without errors, but not working as expected).
3017 3017
3018- Update to zlib-1.2.3 3018- Update to zlib-1.2.3
3019 3019
3020- Fixed vertex alpha handling in DirectX drivers. 3020- Fixed vertex alpha handling in DirectX drivers.
3021 3021
3022- Image writers fixed and working (at least for little endian systems). 3022- Image writers fixed and working (at least for little endian systems).
3023 3023
3024- VSync under Linux fixed and correctly working. 3024- VSync under Linux fixed and correctly working.
3025 3025
3026- New os::Byteswap::byteswap methods which can be used for byteswapping (endianess correction) in mesh loaders and image loaders. 3026- New os::Byteswap::byteswap methods which can be used for byteswapping (endianess correction) in mesh loaders and image loaders.
3027 3027
3028- New video driver feature to check for multitexture feature. 3028- New video driver feature to check for multitexture feature.
3029 3029
3030- Direct3D drivers update the devicelost variable if reseeting failed with this return code. 3030- Direct3D drivers update the devicelost variable if reseeting failed with this return code.
3031 3031
3032- VideoModeList under Linux is correctly filled now. No glX calls are made if GLX extension is not found - only software drivers are available then. RandR extension can be enabled with a new compile flag in IrrCompileConfig.h, either instead of XF86VidMode or in addition. 3032- VideoModeList under Linux is correctly filled now. No glX calls are made if GLX extension is not found - only software drivers are available then. RandR extension can be enabled with a new compile flag in IrrCompileConfig.h, either instead of XF86VidMode or in addition.
3033 3033
3034- Big Endian support for MS3D loader. 3034- Big Endian support for MS3D loader.
3035 3035
3036- Apfelbaum software renderer: basic mipmap support (per triangle), switch for using w-buffer instad z-buffer ( default on ) 3036- Apfelbaum software renderer: basic mipmap support (per triangle), switch for using w-buffer instad z-buffer ( default on )
3037 3037
3038- Better FPU support: Changed various fpu-call's in whole project (main reason to use faster float to int conversion on x86. ( fistp )) 3038- Better FPU support: Changed various fpu-call's in whole project (main reason to use faster float to int conversion on x86. ( fistp ))
3039 3039
3040- changed Visual Studio 7.1 vcproj project config "Release Fast FPU" to __fastcall in /QIfist 3040- changed Visual Studio 7.1 vcproj project config "Release Fast FPU" to __fastcall in /QIfist
3041 3041
3042- CGUIFont added True Alpha Font Support. (currently it's a little hack, but it'a good starting point. Fonts are back compatible. To use the new feature make first pixel half transparent in the font file.) 3042- CGUIFont added True Alpha Font Support. (currently it's a little hack, but it'a good starting point. Fonts are back compatible. To use the new feature make first pixel half transparent in the font file.)
3043 3043
3044- Scolor: replaced s16 color with u16 color, replaced s32 color with u32 color to get rid of unnecessary arithmetic shift 3044- Scolor: replaced s16 color with u16 color, replaced s32 color with u32 color to get rid of unnecessary arithmetic shift
3045 3045
3046- Colorconverter: X8R8G8B8toA1R5G5B5, set Alpha High, minor: A1R5G5B5toA8R8G8B8 changed if (a) to conditional set 3046- Colorconverter: X8R8G8B8toA1R5G5B5, set Alpha High, minor: A1R5G5B5toA8R8G8B8 changed if (a) to conditional set
3047 3047
3048- CImage: added boxfilter (weigthed average), (generic, slow) 3048- CImage: added boxfilter (weigthed average), (generic, slow)
3049 3049
3050- The scene manager now sets an ambient light color when calling ISceneManager::drawAll(). 3050- The scene manager now sets an ambient light color when calling ISceneManager::drawAll().
3051 You can influence this by calling ISceneManager::setAmbientLight(). That light color 3051 You can influence this by calling ISceneManager::setAmbientLight(). That light color
3052 is also stored when saving .irr files via ISceneManager::saveScene(). 3052 is also stored when saving .irr files via ISceneManager::saveScene().
3053 3053
3054- Loaded COLLADA files which contained only one single mesh now behave like all the 3054- Loaded COLLADA files which contained only one single mesh now behave like all the
3055 other loaded meshes, and the #meshname workaround has been removed. 3055 other loaded meshes, and the #meshname workaround has been removed.
3056 3056
3057- File lists are now sorted. 3057- File lists are now sorted.
3058 3058
3059- Dynamically checking the OpenGL version now instead of at compile time to call the supported methods of the executing machine, not that one of the compile host. This should fix the extension check and the automatic mipmap update. 3059- Dynamically checking the OpenGL version now instead of at compile time to call the supported methods of the executing machine, not that one of the compile host. This should fix the extension check and the automatic mipmap update.
3060 3060
3061- Fixed vertex alpha handling of 2D images with OpenGL. 3061- Fixed vertex alpha handling of 2D images with OpenGL.
3062 3062
3063- Default depth buffer under Windows now 24bit to avoid zbuffer fighting. 3063- Default depth buffer under Windows now 24bit to avoid zbuffer fighting.
3064 3064
3065- Fixed light count in OpenGL. 3065- Fixed light count in OpenGL.
3066 3066
3067- Particle emitters can now be enabled/disabled via a new method. 3067- Particle emitters can now be enabled/disabled via a new method.
3068 3068
3069- Sky dome is rotatable just like the sky box. 3069- Sky dome is rotatable just like the sky box.
3070 3070
3071- Rotation animator can be applied to several nodes now, before it only rotated the first one it was applied to. 3071- Rotation animator can be applied to several nodes now, before it only rotated the first one it was applied to.
3072 3072
3073- Support for drawing other vertex primitive lists such as triangle strips. 3073- Support for drawing other vertex primitive lists such as triangle strips.
3074 3074
3075- Default specular color is white again, thus simply enabling shininess is enough to get speculars. 3075- Default specular color is white again, thus simply enabling shininess is enough to get speculars.
3076 3076
3077- Some .x loader and animator improvements. Vertex color support. 3077- Some .x loader and animator improvements. Vertex color support.
3078 3078
3079- isActive now also work under Linux. 3079- isActive now also work under Linux.
3080 3080
3081------------------------------------------- 3081-------------------------------------------
3082 3082
3083Changes in version 1.1 (06 Aug 2006) 3083Changes in version 1.1 (06 Aug 2006)
3084 3084
3085- New example to show some features of the .irr format 3085- New example to show some features of the .irr format
3086 3086
3087- Added support for making screenshots in all video drivers and a general 3087- Added support for making screenshots in all video drivers and a general
3088 possibility to save any IImage to several file formats. 3088 possibility to save any IImage to several file formats.
3089 Some image writers are not yet implemented. As a testcase screenshots 3089 Some image writers are not yet implemented. As a testcase screenshots
3090 are now available in the demo by pressing F9. 3090 are now available in the demo by pressing F9.
3091 This code was contributed by Travis Vitek. 3091 This code was contributed by Travis Vitek.
3092 3092
3093- Changed EAMTS_OCT to EAMT_OCT. 3093- Changed EAMTS_OCT to EAMT_OCT.
3094 3094
3095- Improved .3ds and .obj file importers. 3095- Improved .3ds and .obj file importers.
3096 3096
3097- Added support for .b3d (Blitz Basic) submitted by Luke Hoschke and 3097- Added support for .b3d (Blitz Basic) submitted by Luke Hoschke and
3098 .pak (Quake archive) files submitted by skreamz. 3098 .pak (Quake archive) files submitted by skreamz.
3099 3099
3100- Added sky dome implementation contributed by Anders la Cour-Harbo (alc). 3100- Added sky dome implementation contributed by Anders la Cour-Harbo (alc).
3101 3101
3102- In addition to the Cube scene node (formerly test scene node) there is now also a sphere scene node available, 3102- In addition to the Cube scene node (formerly test scene node) there is now also a sphere scene node available,
3103 with an adjustable amount of polygons. Use ISceneManager::addSphereSceneNode to create it. 3103 with an adjustable amount of polygons. Use ISceneManager::addSphereSceneNode to create it.
3104 Thx to Alfaz93 for making available his code on which this node is based on. 3104 Thx to Alfaz93 for making available his code on which this node is based on.
3105 Note that both nodes now use default material settings, e.g. lighting is enabled by default. 3105 Note that both nodes now use default material settings, e.g. lighting is enabled by default.
3106 3106
3107- Fixed Linux keyhandling for many keys. 3107- Fixed Linux keyhandling for many keys.
3108 3108
3109- The aspect ratio has been inverted in the matrix, which means when setting a new aspect ratio 3109- The aspect ratio has been inverted in the matrix, which means when setting a new aspect ratio
3110 for cameras, set it to screen.width/screen.height now instead of screen.height/screen.width 3110 for cameras, set it to screen.width/screen.height now instead of screen.height/screen.width
3111 as previously. 3111 as previously.
3112 3112
3113- added support for reading/importing binary .x files. 3113- added support for reading/importing binary .x files.
3114 3114
3115- .ms3d and .x normals are now correctly transformed in animations, bounding 3115- .ms3d and .x normals are now correctly transformed in animations, bounding
3116 boxes are slightly better transformed, but not yet correct. 3116 boxes are slightly better transformed, but not yet correct.
3117 3117
3118- Added possibility to load and save Irrlicht scenes to and from xml files via 3118- Added possibility to load and save Irrlicht scenes to and from xml files via
3119 ISceneManager::saveScene and ISceneManager::loadScene. Note that not all 3119 ISceneManager::saveScene and ISceneManager::loadScene. Note that not all
3120 scene nodes are supported yet, but most features should already work. 3120 scene nodes are supported yet, but most features should already work.
3121 3121
3122- Bounding box of the Skybox corrected (set to null) 3122- Bounding box of the Skybox corrected (set to null)
3123 3123
3124- The SMaterial structure now supports 4 textures. (Currently ignored by the renderers and their materials.) 3124- The SMaterial structure now supports 4 textures. (Currently ignored by the renderers and their materials.)
3125 3125
3126- Test scene node renamed to CubeSceneNode. 3126- Test scene node renamed to CubeSceneNode.
3127 3127
3128- Added scene node animator factories. This is the same as scene node 3128- Added scene node animator factories. This is the same as scene node
3129 factories, but for scene node animators. 3129 factories, but for scene node animators.
3130 3130
3131- Added scene node factories. This is an interface making it possible to dynamicly 3131- Added scene node factories. This is an interface making it possible to dynamicly
3132 create scene nodes. To be able to add custom scene nodes to Irrlicht and 3132 create scene nodes. To be able to add custom scene nodes to Irrlicht and
3133 to make it possible for the scene manager to save and load those external scene nodes, simply 3133 to make it possible for the scene manager to save and load those external scene nodes, simply
3134 implement this interface and register it in you scene manager via ISceneManager:: 3134 implement this interface and register it in you scene manager via ISceneManager::
3135 registerSceneNodeFactory 3135 registerSceneNodeFactory
3136 3136
3137- Introduced IMeshSceneNode interface with the possibility to set readonly materials to make 3137- Introduced IMeshSceneNode interface with the possibility to set readonly materials to make
3138 it possible to use the mesh materials directly instead of overriding them. In this way 3138 it possible to use the mesh materials directly instead of overriding them. In this way
3139 it is possible to change the materials of a mesh causing all mesh scene nodes 3139 it is possible to change the materials of a mesh causing all mesh scene nodes
3140 referencing this mesh to change, too. 3140 referencing this mesh to change, too.
3141 3141
3142- Added possibility to load OGRE .mesh files directly, thanks to Christian Stehno who contributed 3142- Added possibility to load OGRE .mesh files directly, thanks to Christian Stehno who contributed
3143 a loader for this. 3143 a loader for this.
3144 3144
3145- Merged with Irrlicht 1.0 for MacOS 3145- Merged with Irrlicht 1.0 for MacOS
3146 3146
3147- Added a method getType() to ISceneNodeAnimator. 3147- Added a method getType() to ISceneNodeAnimator.
3148 3148
3149- There is now a system to serialize and deserialize attributes of scene nodes. In this way 3149- There is now a system to serialize and deserialize attributes of scene nodes. In this way
3150 it should be quite simple to to expose the attributes of your scene node for scripting 3150 it should be quite simple to to expose the attributes of your scene node for scripting
3151 languages, editors, debuggers or xml serialization purposes. 3151 languages, editors, debuggers or xml serialization purposes.
3152 3152
3153- Irrlicht containers and strings now have allocators, making it possible to 3153- Irrlicht containers and strings now have allocators, making it possible to
3154 use them across .dll boundaries. 3154 use them across .dll boundaries.
3155 3155
3156- Changed the name of scene nodes from wide character to to char* for speed and memory reasons. 3156- Changed the name of scene nodes from wide character to to char* for speed and memory reasons.
3157 3157
3158- Renamed IStringParameter class to IAttributes and enhanced it to be able to 3158- Renamed IStringParameter class to IAttributes and enhanced it to be able to
3159 serialize its content into and from xml. 3159 serialize its content into and from xml.
3160 3160
3161- Textures now have a method getName(). 3161- Textures now have a method getName().
3162 3162
3163- Added the methods getTextureCount() and getTextureByIndex() to IVideoDriver. 3163- Added the methods getTextureCount() and getTextureByIndex() to IVideoDriver.
3164 3164
3165- Most classes now derive virtually from IUnknown. 3165- Most classes now derive virtually from IUnknown.
3166 3166
3167------------------------------------------- 3167-------------------------------------------
3168Changes in version 1.0 (19 Apr 2006) 3168Changes in version 1.0 (19 Apr 2006)
3169 3169
3170- Irrlicht now will load d3d 9 dlls (like d3dx9_27.dll) manually if needed. If you compile irrlicht 3170- Irrlicht now will load d3d 9 dlls (like d3dx9_27.dll) manually if needed. If you compile irrlicht
3171 with an SDK which needs one of these dlls, irrlicht will now also start up on a pc without 3171 with an SDK which needs one of these dlls, irrlicht will now also start up on a pc without
3172 these Dlls installed. Note that now these dlls will also only be loaded if your application 3172 these Dlls installed. Note that now these dlls will also only be loaded if your application
3173 uses shaders. If the dlls are missing, shader support will be disabled. 3173 uses shaders. If the dlls are missing, shader support will be disabled.
3174 3174
3175- The Apfelbaum Software Software Renderer now works in 32 bit and is capable of rendering dynamic 3175- The Apfelbaum Software Software Renderer now works in 32 bit and is capable of rendering dynamic
3176 lighting as well as doing alpha channel blending. 3176 lighting as well as doing alpha channel blending.
3177 3177
3178- Added support for the Code::Blocks IDE (http://www.codeblocks.org) 3178- Added support for the Code::Blocks IDE (http://www.codeblocks.org)
3179 3179
3180- It is now possible to draw temporarily to foreign windows, by specifying a window handle when 3180- It is now possible to draw temporarily to foreign windows, by specifying a window handle when
3181 calling IVideoDriver::endScene(). Note: This does not work in fullscreen mode and is not 3181 calling IVideoDriver::endScene(). Note: This does not work in fullscreen mode and is not
3182 implemented for all devices (only for D3D8, D3D9, Software1 and Software2, and only for Windows). 3182 implemented for all devices (only for D3D8, D3D9, Software1 and Software2, and only for Windows).
3183 In addition, you can also specify the source rectangle to present. 3183 In addition, you can also specify the source rectangle to present.
3184 3184
3185- Picking is now more accurate and also works with view ports and better with orthogonal cameras. 3185- Picking is now more accurate and also works with view ports and better with orthogonal cameras.
3186 3186
3187- Scene Nodes now have an additional flag, IsDebugObject. This denotes if a 3187- Scene Nodes now have an additional flag, IsDebugObject. This denotes if a
3188 scene node is a debug object. Debug objects have some special properties, 3188 scene node is a debug object. Debug objects have some special properties,
3189 for example they can be easily excluded 3189 for example they can be easily excluded
3190 from collision detection, picking or from serialization, etc. 3190 from collision detection, picking or from serialization, etc.
3191 3191
3192- Scene Nodes now have the possibility to return their type using 3192- Scene Nodes now have the possibility to return their type using
3193 virtual ESCENE_NODE_TYPE getType(). 3193 virtual ESCENE_NODE_TYPE getType().
3194 3194
3195- Improved support for orthogonal rendering: Skyboxes and billboards can be 3195- Improved support for orthogonal rendering: Skyboxes and billboards can be
3196 used with orthogonal cameras now, too. 3196 used with orthogonal cameras now, too.
3197 3197
3198- Fixed a bug in collision 3198- Fixed a bug in collision
3199 3199
3200- Fixed some marshalling bugs in Irrlicht.NET 3200- Fixed some marshalling bugs in Irrlicht.NET
3201 3201
3202- Some fixes to make gcc 4 happy. 3202- Some fixes to make gcc 4 happy.
3203 3203
3204- Fixed a bug which caused the engine to crash when trying to use the 3204- Fixed a bug which caused the engine to crash when trying to use the
3205 apfelbaum software rasterizer with linux 3205 apfelbaum software rasterizer with linux
3206 3206
3207- Several improvements to Irrlicht.NET, for example string output for vectors, viewfrustrum access 3207- Several improvements to Irrlicht.NET, for example string output for vectors, viewfrustrum access
3208 for cameras, drawing of bounding boxes, support for orthogonal cameras. 3208 for cameras, drawing of bounding boxes, support for orthogonal cameras.
3209 3209
3210- Updated DMF importer to support new DeleD functionalities, solid materials will now be 3210- Updated DMF importer to support new DeleD functionalities, solid materials will now be
3211 shown correctly again in Irrlicht. Thanks to Salvatore "Il Buzzo". 3211 shown correctly again in Irrlicht. Thanks to Salvatore "Il Buzzo".
3212 3212
3213- Added a method to change the return value of ICameraSceneNode::isOrthogonal 3213- Added a method to change the return value of ICameraSceneNode::isOrthogonal
3214 3214
3215- Improved md2 animation playback 3215- Improved md2 animation playback
3216 3216
3217- Fixed the REFLECTION_2_LAYER materials. Now also works for OpenGL. Had to change the parameters 3217- Fixed the REFLECTION_2_LAYER materials. Now also works for OpenGL. Had to change the parameters
3218 of this material (for all drivers), the reflection is now at texture 2 and the diffuse map at 3218 of this material (for all drivers), the reflection is now at texture 2 and the diffuse map at
3219 texture 1. This was the other way round before. 3219 texture 1. This was the other way round before.
3220 3220
3221- Added examples for csharp, visualbasic, delphi.net and boo. 3221- Added examples for csharp, visualbasic, delphi.net and boo.
3222 3222
3223- Several other small bug fixes. 3223- Several other small bug fixes.
3224 3224
3225------------------------------------------------------------------------------------- 3225-------------------------------------------------------------------------------------
3226Changes in version 0.14.0 (30 November 2005) 3226Changes in version 0.14.0 (30 November 2005)
3227 3227
3228- Irrlicht now includes another video driver type. Together with D3D8, D3D9, OpenGL, the NULL 3228- Irrlicht now includes another video driver type. Together with D3D8, D3D9, OpenGL, the NULL
3229 driver and the Software Renderer, an Irrlicht user now has the decision between 6 renderers: 3229 driver and the Software Renderer, an Irrlicht user now has the decision between 6 renderers:
3230 The new included renderer is The Apfelbaum Software Renderer, an alternative software renderer 3230 The new included renderer is The Apfelbaum Software Renderer, an alternative software renderer
3231 for Irrlicht. Basically it can be described as the Irrlicht Software renderer on steroids. 3231 for Irrlicht. Basically it can be described as the Irrlicht Software renderer on steroids.
3232 It rasterizes 3D geometry perfectly: It is able to perform correct 3d clipping, perspective 3232 It rasterizes 3D geometry perfectly: It is able to perform correct 3d clipping, perspective
3233 correct texture mapping, perspective correct color mapping, and renders sub pixel correct, 3233 correct texture mapping, perspective correct color mapping, and renders sub pixel correct,
3234 sub texel correct primitives. In addition, it does bilinear texel filtering and supports more 3234 sub texel correct primitives. In addition, it does bilinear texel filtering and supports more
3235 materials than the EDT_SOFTWARE driver. In short: It looks a lot like the already available hardware 3235 materials than the EDT_SOFTWARE driver. In short: It looks a lot like the already available hardware
3236 accelerated drivers, but without hardware. :) This renderer has been written entirely by 3236 accelerated drivers, but without hardware. :) This renderer has been written entirely by
3237 Thomas Alten, thanks a lot for this huge contribution. 3237 Thomas Alten, thanks a lot for this huge contribution.
3238 3238
3239- Irrlicht now supports anisotropic filtering. Use the SMaterial::AnisotropicFilter member or 3239- Irrlicht now supports anisotropic filtering. Use the SMaterial::AnisotropicFilter member or
3240 EMF_ANISOTROPIC_FILTER flag to enable it. I implemented this for all 3 hardware accelerated 3240 EMF_ANISOTROPIC_FILTER flag to enable it. I implemented this for all 3 hardware accelerated
3241 drivers: D3D8, D3D9 and OpenGL. 3241 drivers: D3D8, D3D9 and OpenGL.
3242 3242
3243- Irrlicht now supports the recently released new microsoft compiler. Irrlicht versions compiled 3243- Irrlicht now supports the recently released new microsoft compiler. Irrlicht versions compiled
3244 with older verions of this compiler can now also be used with the new one, which wasn't possible 3244 with older verions of this compiler can now also be used with the new one, which wasn't possible
3245 previously because of a name mangeling issue. 3245 previously because of a name mangeling issue.
3246 3246
3247- All 2D drawing functions can now be used to draw into textures (render targets). This also 3247- All 2D drawing functions can now be used to draw into textures (render targets). This also
3248 means for example that the whole GUI environment can be rendered into textures. 3248 means for example that the whole GUI environment can be rendered into textures.
3249 3249
3250- Irrlicht.NET now supports shaders. 3250- Irrlicht.NET now supports shaders.
3251 3251
3252- Irrlicht now loads all textures in 32 bit mode by default. (Previously this 3252- Irrlicht now loads all textures in 32 bit mode by default. (Previously this
3253 was 16bit). To change this behavior back again, use 3253 was 16bit). To change this behavior back again, use
3254 device->getVideoDriver()->setTextureCreationFlag(ETCF_ALWAYS_16_BIT, true); 3254 device->getVideoDriver()->setTextureCreationFlag(ETCF_ALWAYS_16_BIT, true);
3255 3255
3256- Irrlicht.NET now supports Particlesystems and Shaders. Thanks to a code 3256- Irrlicht.NET now supports Particlesystems and Shaders. Thanks to a code
3257 contribution by Delight. 3257 contribution by Delight.
3258 3258
3259- Fixed a bug in the mipmap generation. Now mipmaps are not that blurry 3259- Fixed a bug in the mipmap generation. Now mipmaps are not that blurry
3260 anymore and the rendering quality has been improved a lot. 3260 anymore and the rendering quality has been improved a lot.
3261 3261
3262- It is now possible to assign a userData int to callback functions of shaders. In this way it 3262- It is now possible to assign a userData int to callback functions of shaders. In this way it
3263 it easily possible to use the same callback method for multiple materials and distinguish 3263 it easily possible to use the same callback method for multiple materials and distinguish
3264 between them during the call. 3264 between them during the call.
3265 3265
3266- Directional lights are now supported in the OpenGL and D3D drivers. To switch on directional 3266- Directional lights are now supported in the OpenGL and D3D drivers. To switch on directional
3267 lighting, set the light type to ELT_DIRECTIONAL in the SLight structure. 3267 lighting, set the light type to ELT_DIRECTIONAL in the SLight structure.
3268 3268
3269- Fixed several bugs in the GLSL implementation. Thanks to Michael Zoech for 3269- Fixed several bugs in the GLSL implementation. Thanks to Michael Zoech for
3270 sending in his improvements. 3270 sending in his improvements.
3271 3271
3272- For the windows version of Irrlicht, the engine now displays an icon in the 3272- For the windows version of Irrlicht, the engine now displays an icon in the
3273 program window, if there is one available in the start path with the name "irr.ico". 3273 program window, if there is one available in the start path with the name "irr.ico".
3274 3274
3275- It is now possible to use images with alpha channels on buttons. Use the new 3275- It is now possible to use images with alpha channels on buttons. Use the new
3276 IGUIButton::setUseAlphaChannel() method to enable this feature. 3276 IGUIButton::setUseAlphaChannel() method to enable this feature.
3277 3277
3278- The scene manager has a new method getSceneNodeFromName() which finds a scene node by its name. 3278- The scene manager has a new method getSceneNodeFromName() which finds a scene node by its name.
3279 3279
3280- It is now also possible to attach scene nodes to joints/bones of sceletal animated .x files. 3280- It is now also possible to attach scene nodes to joints/bones of sceletal animated .x files.
3281 (Using IAnimatedMesh->getXJointNode() ). This was previously only possible with milkshape models. 3281 (Using IAnimatedMesh->getXJointNode() ). This was previously only possible with milkshape models.
3282 3282
3283- Billboards now draw their bounding box when debugdata is set to visible for them. 3283- Billboards now draw their bounding box when debugdata is set to visible for them.
3284 3284
3285- Lights now draw their bounding box and radius when debugdata is set to visible for them. 3285- Lights now draw their bounding box and radius when debugdata is set to visible for them.
3286 3286
3287- Upgraded to irrXML 1.2. Thanks to some hints by Patrik Mller, irrXML, the XML parser used 3287- Upgraded to irrXML 1.2. Thanks to some hints by Patrik Mller, irrXML, the XML parser used
3288 by the Irrlicht Engine now has CDATA support and some other useful new features. 3288 by the Irrlicht Engine now has CDATA support and some other useful new features.
3289 3289
3290- Support for VisualC++ (Express) 2005. Added a project file and a IrrlichtPropsVC2005.vsprops 3290- Support for VisualC++ (Express) 2005. Added a project file and a IrrlichtPropsVC2005.vsprops
3291 file which sets the no deprecate define and adds needed libraries. 3291 file which sets the no deprecate define and adds needed libraries.
3292 3292
3293- Fixed size of the bounding box of billboards. 3293- Fixed size of the bounding box of billboards.
3294 3294
3295- Billboards are now also culled by default, increasing rendering speed a bit. 3295- Billboards are now also culled by default, increasing rendering speed a bit.
3296 3296
3297- Fixed a bug which caused the .ms3d loader to crash when loading .ms3d files 3297- Fixed a bug which caused the .ms3d loader to crash when loading .ms3d files
3298 without materials. Thanks to sdi2000 for posting this. 3298 without materials. Thanks to sdi2000 for posting this.
3299 3299
3300- Fixed a bug causing the possibility to crash when destructing the scene 3300- Fixed a bug causing the possibility to crash when destructing the scene
3301 graph or a scene node with children. 3301 graph or a scene node with children.
3302 3302
3303- Fixed some bugs which caused invalid RTT operations, when for example the 3303- Fixed some bugs which caused invalid RTT operations, when for example the
3304 render target texture was smaller than the screen. 3304 render target texture was smaller than the screen.
3305 3305
3306- Fixed a heavy bug in Irrlicht.NET causing lots of memory leaks when drawing text. 3306- Fixed a heavy bug in Irrlicht.NET causing lots of memory leaks when drawing text.
3307 3307
3308- Fixed a bug in the attachement of scene nodes to animated X files. 3308- Fixed a bug in the attachement of scene nodes to animated X files.
3309 3309
3310- Fixed a bug in the .NET Vector3D addition operator. 3310- Fixed a bug in the .NET Vector3D addition operator.
3311 3311
3312- Updated to Salvatore Russo's DMF loader version 1.3. Notes by him: 3312- Updated to Salvatore Russo's DMF loader version 1.3. Notes by him:
3313 This version just adds some new functionalities. First of all Alpha Blended Textures are now 3313 This version just adds some new functionalities. First of all Alpha Blended Textures are now
3314 supported by DeleD as well as loader. Because of some trouble with Irrlicht 0.12.0 TGA loading, 3314 supported by DeleD as well as loader. Because of some trouble with Irrlicht 0.12.0 TGA loading,
3315 TGA textures are always flipped so I've added a parameter so that you can choose to 3315 TGA textures are always flipped so I've added a parameter so that you can choose to
3316 flip or not all TGA textures coords, this way: 3316 flip or not all TGA textures coords, this way:
3317 SceneManager->getParameters()->setParameter(scene::DMF_FLIP_ALPHA_TEXTURES, true); 3317 SceneManager->getParameters()->setParameter(scene::DMF_FLIP_ALPHA_TEXTURES, true);
3318 you can also set material transparent reference value by setting: 3318 you can also set material transparent reference value by setting:
3319 SceneManager->getParameters()->setParameter(scene::DMF_ALPHA_CHANNEL_REF, 0.01); 3319 SceneManager->getParameters()->setParameter(scene::DMF_ALPHA_CHANNEL_REF, 0.01);
3320 you can use every value beetween 0 and 1, but to respect DeleD rapresentation 3320 you can use every value beetween 0 and 1, but to respect DeleD rapresentation
3321 0.01 is OK, just a note, if you set 0, it's just like you set 0.5, this means 3321 0.01 is OK, just a note, if you set 0, it's just like you set 0.5, this means
3322 that each pixel found corresponding to a position in alpha map that has a value<127 3322 that each pixel found corresponding to a position in alpha map that has a value<127
3323 won't be drawn. 3323 won't be drawn.
3324 3324
3325- Fixed a small bug in the line breaking algorithm. 3325- Fixed a small bug in the line breaking algorithm.
3326 3326
3327- Fixed a bug which caused the engine to display strange artifact pixels when drawing 2D images 3327- Fixed a bug which caused the engine to display strange artifact pixels when drawing 2D images
3328 like text in screens which odd resolutions. 3328 like text in screens which odd resolutions.
3329 3329
3330- Slightly changed the interface of createDevice and createDeviceEx(): the version parameter 3330- Slightly changed the interface of createDevice and createDeviceEx(): the version parameter
3331 now is a char* instead of wchar_t*. Also, IrrlichtDevice::getVersion() now returns char* 3331 now is a char* instead of wchar_t*. Also, IrrlichtDevice::getVersion() now returns char*
3332 instead of wchar_t*. 3332 instead of wchar_t*.
3333 3333
3334- Fixed some parts in the source to make Irrlicht compile in Linux 64. 3334- Fixed some parts in the source to make Irrlicht compile in Linux 64.
3335 3335
3336- Renamed the EDT_DIRECTX8, EDT_DIRECTX9, _IRR_COMPILE_WITH_DIRECTX_8_ and 3336- Renamed the EDT_DIRECTX8, EDT_DIRECTX9, _IRR_COMPILE_WITH_DIRECTX_8_ and
3337 _IRR_COMPILE_WITH_DIRECTX_8_ enumeration literals to EDT_DIRECT3D8, EDT_DIRECT3D9, 3337 _IRR_COMPILE_WITH_DIRECTX_8_ enumeration literals to EDT_DIRECT3D8, EDT_DIRECT3D9,
3338 _IRR_COMPILE_WITH_DIRECT3D_8_ and _IRR_COMPILE_WITH_DIRECT3D_9_. You might need to 3338 _IRR_COMPILE_WITH_DIRECT3D_8_ and _IRR_COMPILE_WITH_DIRECT3D_9_. You might need to
3339 update your code and compilation settings with these new names. 3339 update your code and compilation settings with these new names.
3340 3340
3341- Added the remaining '..' directory in the linux version of the file list 3341- Added the remaining '..' directory in the linux version of the file list
3342 3342
3343- Updated to a faster version of the TerrainSceneNode by Spintz. Much thanks again! 3343- Updated to a faster version of the TerrainSceneNode by Spintz. Much thanks again!
3344 3344
3345- Fixed a bug causing billboards to be displayed upside down. 3345- Fixed a bug causing billboards to be displayed upside down.
3346 3346
3347- The D3D drivers now won't crash anymore when they get feeded with nullpointers as shader constants. 3347- The D3D drivers now won't crash anymore when they get feeded with nullpointers as shader constants.
3348 3348
3349- Irrlicht now identifies the Linux platform it runs on and returns a more detailed string 3349- Irrlicht now identifies the Linux platform it runs on and returns a more detailed string
3350 when calling getOperationSystemVersion(). 3350 when calling getOperationSystemVersion().
3351 3351
3352- Fixed some bugs in several collision test methods thanks to Spintz. 3352- Fixed some bugs in several collision test methods thanks to Spintz.
3353 3353
3354- Updated font tool 3354- Updated font tool
3355 3355
3356- Made the list::iterator constructor which took a sklistnode as parameter private, 3356- Made the list::iterator constructor which took a sklistnode as parameter private,
3357 to make Irrlicht compatible with the Errlicht interface. 3357 to make Irrlicht compatible with the Errlicht interface.
3358 3358
3359------------------------------------------------------------------------------------- 3359-------------------------------------------------------------------------------------
3360Changes in version 0.12.0 (24 August 2005) 3360Changes in version 0.12.0 (24 August 2005)
3361 3361
3362- It is now possible to have multiple scene managers. Use ISceneManager::createNewSceneManager() 3362- It is now possible to have multiple scene managers. Use ISceneManager::createNewSceneManager()
3363 to create a new one. This can be used to easily draw and/or store two independent scenes at 3363 to create a new one. This can be used to easily draw and/or store two independent scenes at
3364 the same time. 3364 the same time.
3365 3365
3366- Irrlicht now supports GLSL, the OpenGL Shading Language, which means Irrlicht now 3366- Irrlicht now supports GLSL, the OpenGL Shading Language, which means Irrlicht now
3367 supports 14 shading modes/languages: ARB Vertex Programs, ARB Pixel Programs, HLSL, 3367 supports 14 shading modes/languages: ARB Vertex Programs, ARB Pixel Programs, HLSL,
3368 GLSL 100, GLSL 110VS1.1, VS2.0, VS3.0, PS1.1, PS1.2, PS1.3, PS1.4, PS2.0, PS3.0. 3368 GLSL 100, GLSL 110VS1.1, VS2.0, VS3.0, PS1.1, PS1.2, PS1.3, PS1.4, PS2.0, PS3.0.
3369 Lots of thanks go to William Finlayson for implementing this and making available his code 3369 Lots of thanks go to William Finlayson for implementing this and making available his code
3370 to be used in Irrlicht. 3370 to be used in Irrlicht.
3371 3371
3372- Added support for pixel shader 3.0 and vertex shader 3.0. 3372- Added support for pixel shader 3.0 and vertex shader 3.0.
3373 3373
3374- Irrlicht now supports detail maps, use EMT_DETAIL_MAP for this. The new terrain scene node 3374- Irrlicht now supports detail maps, use EMT_DETAIL_MAP for this. The new terrain scene node
3375 tutorial shows how to use detail maps. 3375 tutorial shows how to use detail maps.
3376 3376
3377- Again some changes have been made in Irrlicht.NET. For example it is now a little bit more memory 3377- Again some changes have been made in Irrlicht.NET. For example it is now a little bit more memory
3378 friendly, I removed several bugs and made the terrain scene node, realtime shadows and key codes 3378 friendly, I removed several bugs and made the terrain scene node, realtime shadows and key codes
3379 available. 3379 available.
3380 In addition, I extended the .net example application a lot, just try it out. 3380 In addition, I extended the .net example application a lot, just try it out.
3381 3381
3382- I've worked around a heavy bug in the microsoft compiler which caused lots of bugs in Irrlicht.NET. 3382- I've worked around a heavy bug in the microsoft compiler which caused lots of bugs in Irrlicht.NET.
3383 They are all fixed now. See http://support.microsoft.com/default.aspx?kbid=823071 for details. 3383 They are all fixed now. See http://support.microsoft.com/default.aspx?kbid=823071 for details.
3384 3384
3385- The timer of the engine has been enhanced a lot, which maybe needs a little change in your 3385- The timer of the engine has been enhanced a lot, which maybe needs a little change in your
3386 project if you are upgrading from an older version of Irrlicht. It is now possible 3386 project if you are upgrading from an older version of Irrlicht. It is now possible
3387 to set the speed of the timer, a new time value, and to start and stop it. Also, all 3387 to set the speed of the timer, a new time value, and to start and stop it. Also, all
3388 calls to getTime() will now return the same value within the same drawing frame. 3388 calls to getTime() will now return the same value within the same drawing frame.
3389 The timer will only advance when ITimer::tick() is called. IrrlichtDevice::run() will 3389 The timer will only advance when ITimer::tick() is called. IrrlichtDevice::run() will
3390 call this method automaticly, but if you aren't using this method, and you are wondering 3390 call this method automaticly, but if you aren't using this method, and you are wondering
3391 why your scene is not animating anymore, just call Device->getTimer()->tick() before 3391 why your scene is not animating anymore, just call Device->getTimer()->tick() before
3392 drawing your scene. If you need the system time, not the new virtual time, 3392 drawing your scene. If you need the system time, not the new virtual time,
3393 use ITimer::getRealTime(). 3393 use ITimer::getRealTime().
3394 3394
3395- The material EMT_TRANSPARENT_ALPHA_CHANNEL now is using a configurable alpha ref value. 3395- The material EMT_TRANSPARENT_ALPHA_CHANNEL now is using a configurable alpha ref value.
3396 The default value is 127, which means people who are using this material for drawing 3396 The default value is 127, which means people who are using this material for drawing
3397 things like grass, trees etc will get nice results automaticly when changing to 0.12.0. 3397 things like grass, trees etc will get nice results automaticly when changing to 0.12.0.
3398 To change to a different alpha ref value, just change SMaterial::MaterialTypeParam value. 3398 To change to a different alpha ref value, just change SMaterial::MaterialTypeParam value.
3399 See EMT_TRANSPARENT_ALPHA_CHANNEL for details. 3399 See EMT_TRANSPARENT_ALPHA_CHANNEL for details.
3400 Also, this fixes two bugs: 3400 Also, this fixes two bugs:
3401 - A bug causing the D3D versions not looking like the OpenGL version. 3401 - A bug causing the D3D versions not looking like the OpenGL version.
3402 - A second bug which caused the texture to look like disappearing when looking at from far away. 3402 - A second bug which caused the texture to look like disappearing when looking at from far away.
3403 3403
3404- Upgraded to a new dmf loader version by Salvatore Russo which is able to use a texture path 3404- Upgraded to a new dmf loader version by Salvatore Russo which is able to use a texture path
3405 and material directories. Set DMF_USE_MATERIALS_DIRS and DMF_TEXTURE_PATH using the 3405 and material directories. Set DMF_USE_MATERIALS_DIRS and DMF_TEXTURE_PATH using the
3406 ISceneManager::getParameters() method. 3406 ISceneManager::getParameters() method.
3407 3407
3408- It is now possible to set a separate scale for the second texture coordinate set in the 3408- It is now possible to set a separate scale for the second texture coordinate set in the
3409 terrain scene node when calling ITerrainSceneNode::scaleTexture(). This is useful when using 3409 terrain scene node when calling ITerrainSceneNode::scaleTexture(). This is useful when using
3410 detail maps on the terrain. 3410 detail maps on the terrain.
3411 3411
3412- Added a new material flag named EMF_NORMALIZE_NORMALS. You can enable this if you need 3412- Added a new material flag named EMF_NORMALIZE_NORMALS. You can enable this if you need
3413 to scale a dynamic lighted model. Usually, its normals will get scaled too then and it 3413 to scale a dynamic lighted model. Usually, its normals will get scaled too then and it
3414 will get darker. If you enable the EMF_NORMALIZE_NORMALS flag, the normals will be 3414 will get darker. If you enable the EMF_NORMALIZE_NORMALS flag, the normals will be
3415 normalized again. 3415 normalized again.
3416 3416
3417- When loading Milkshape .ms3d files, Irrlicht also loads materials and tries to apply the textures. 3417- When loading Milkshape .ms3d files, Irrlicht also loads materials and tries to apply the textures.
3418 Thanks to atomice for this patch. 3418 Thanks to atomice for this patch.
3419 3419
3420- The ISceneManager::addCameraSceneNodeFPS() has a new parameter named 'noVerticalMovement' with which 3420- The ISceneManager::addCameraSceneNodeFPS() has a new parameter named 'noVerticalMovement' with which
3421 it is possible to disable vertical movement of the FPS camera and make the camera behave just like 3421 it is possible to disable vertical movement of the FPS camera and make the camera behave just like
3422 in most ego shooters today. 3422 in most ego shooters today.
3423 3423
3424- Made Irrlicht 64 bit compatible, removing some 32 bit only constructs. However, I wasn't able to 3424- Made Irrlicht 64 bit compatible, removing some 32 bit only constructs. However, I wasn't able to
3425 test it out extensively. If you are compiling Irrlicht for a 64 bit windows environment and get 3425 test it out extensively. If you are compiling Irrlicht for a 64 bit windows environment and get
3426 a linker problem, try playerdark's solution: 3426 a linker problem, try playerdark's solution:
3427 "The linker settings are so that no machine is specified in the drop down field, instead, 3427 "The linker settings are so that no machine is specified in the drop down field, instead,
3428 the command line option /MACHINE:x86 is set manually which interferes with the 64 bit linker 3428 the command line option /MACHINE:x86 is set manually which interferes with the 64 bit linker
3429 of course. Removing that from the 64 bit version (and replacing it with the drop down selection 3429 of course. Removing that from the 64 bit version (and replacing it with the drop down selection
3430 in the 32 bit version for that matter) fixed the linker problem." 3430 in the 32 bit version for that matter) fixed the linker problem."
3431 3431
3432- There is now a IrrlichtDevice::postEventFromUser() method available, to make it possible to 3432- There is now a IrrlichtDevice::postEventFromUser() method available, to make it possible to
3433 post key or mouse input events to the engine if you are using an own input library for 3433 post key or mouse input events to the engine if you are using an own input library for
3434 example for doing joystick input. 3434 example for doing joystick input.
3435 3435
3436- The GUI Environment now has an own basic RTTI system, and all IGUIElement derived classes 3436- The GUI Environment now has an own basic RTTI system, and all IGUIElement derived classes
3437 have a method named getType(). This is needed for the .NET wrapper but will be used 3437 have a method named getType(). This is needed for the .NET wrapper but will be used
3438 later for serializing and deserializing. 3438 later for serializing and deserializing.
3439 If you wrote your own GUIElements, you need to set the type for your element as first parameter 3439 If you wrote your own GUIElements, you need to set the type for your element as first parameter
3440 in the constructor of IGUIElement. For own (=unknown) elements, simply use EGUIET_ELEMENT. 3440 in the constructor of IGUIElement. For own (=unknown) elements, simply use EGUIET_ELEMENT.
3441 3441
3442- Thanks to William Finlayson, Irrlicht now also supports RTT (render to texture) when 3442- Thanks to William Finlayson, Irrlicht now also supports RTT (render to texture) when
3443 rendering using OpenGL. 3443 rendering using OpenGL.
3444 3444
3445- Thanks to William Finlayson, the EMT_REFLECTION_2_LAYER is now implemented in the 3445- Thanks to William Finlayson, the EMT_REFLECTION_2_LAYER is now implemented in the
3446 OpenGL version of Irrlicht, too. 3446 OpenGL version of Irrlicht, too.
3447 3447
3448- There is now a mesh cache interface available. With this, is is possible to get access to 3448- There is now a mesh cache interface available. With this, is is possible to get access to
3449 all loaded meshes, and to remove them to free memory. You can get access to the cache 3449 all loaded meshes, and to remove them to free memory. You can get access to the cache
3450 using ISceneManager::getMeshCache(). Please note that the addMesh() method of ISceneManager 3450 using ISceneManager::getMeshCache(). Please note that the addMesh() method of ISceneManager
3451 now is now longer available, you can find it now in the IMeshCache interface. 3451 now is now longer available, you can find it now in the IMeshCache interface.
3452 3452
3453- The VideoDriver now has a method for clearing the zbuffer at any time: IVideoDriver::clearZBuffer(). 3453- The VideoDriver now has a method for clearing the zbuffer at any time: IVideoDriver::clearZBuffer().
3454 With this, it is for example easily possible to overlay two scenes. 3454 With this, it is for example easily possible to overlay two scenes.
3455 3455
3456- Fixed a bug which caused Irrlicht to crash when loading grayscale jpeg files. 3456- Fixed a bug which caused Irrlicht to crash when loading grayscale jpeg files.
3457 3457
3458- Somebody sent me an .x file (tank_human1_crashes_irrlicht.zip) which caused Irrlicht to crash. 3458- Somebody sent me an .x file (tank_human1_crashes_irrlicht.zip) which caused Irrlicht to crash.
3459 It seems I've lost that mail, but maybe you are reading this: It's fixed now. :) 3459 It seems I've lost that mail, but maybe you are reading this: It's fixed now. :)
3460 3460
3461- Fixed a bug which caused the diffuse maps of lightmaps to disappear under certain circumstances 3461- Fixed a bug which caused the diffuse maps of lightmaps to disappear under certain circumstances
3462 in OpenGL. 3462 in OpenGL.
3463 3463
3464- Its now possible to make IGUIStaticText draw its background. 3464- Its now possible to make IGUIStaticText draw its background.
3465 3465
3466- Removed the first two default parameters from 3466- Removed the first two default parameters from
3467 IGPUProgrammingServices::addShaderMaterialFromFiles() to prevent SWIG 3467 IGPUProgrammingServices::addShaderMaterialFromFiles() to prevent SWIG
3468 to create non compilable wrapper code. 3468 to create non compilable wrapper code.
3469 3469
3470- Fixed a small bug which caused the terrain scene node to be culled incorrectly. 3470- Fixed a small bug which caused the terrain scene node to be culled incorrectly.
3471 3471
3472- Changed the names the driver return (now "OpenGL 1.5", "Direct3D 9.0" and "Direct3D 8.1") 3472- Changed the names the driver return (now "OpenGL 1.5", "Direct3D 9.0" and "Direct3D 8.1")
3473 3473
3474- Added a new macro _IRR_DEBUG_BREAK_IF which is now used instead of the _asm int 3 break points in 3474- Added a new macro _IRR_DEBUG_BREAK_IF which is now used instead of the _asm int 3 break points in
3475 debug mode. 3475 debug mode.
3476 3476
3477- Fixed a bug were the software renderer didn't clip 2d rectangles. This effect was visible for 3477- Fixed a bug were the software renderer didn't clip 2d rectangles. This effect was visible for
3478 example when using list boxes, selecting an entry at the end an scrolling up so that it wasn't 3478 example when using list boxes, selecting an entry at the end an scrolling up so that it wasn't
3479 visible anymore. 3479 visible anymore.
3480 3480
3481- There is now a new gui event available (named EGET_COMBO_BOX_CHANGED) which will be 3481- There is now a new gui event available (named EGET_COMBO_BOX_CHANGED) which will be
3482 sent when the selected item in a combo box has been changed. Finally. 3482 sent when the selected item in a combo box has been changed. Finally.
3483 3483
3484- Fixed a Problem which caused an empty window to be created when a rendering device 3484- Fixed a Problem which caused an empty window to be created when a rendering device
3485 could not be initialized under special circumstances. Thanks to Sascha Plumhoff for 3485 could not be initialized under special circumstances. Thanks to Sascha Plumhoff for
3486 the bug report. 3486 the bug report.
3487 3487
3488- Fixed a bug with the FileList in Linux, reported by DrAnonymous and fixed by William Finlayson. 3488- Fixed a bug with the FileList in Linux, reported by DrAnonymous and fixed by William Finlayson.
3489 3489
3490- Fixed some bad documentation bugs. 3490- Fixed some bad documentation bugs.
3491 3491
3492- The XWindow handle is now exposed too, via IVideoDriver::getExposedVideoData(). 3492- The XWindow handle is now exposed too, via IVideoDriver::getExposedVideoData().
3493 3493
3494------------------------------------------------------------------------------------- 3494-------------------------------------------------------------------------------------
3495Changes in version 0.11.0 (08 July 2005) 3495Changes in version 0.11.0 (08 July 2005)
3496 3496
3497- Antialiasing is now supported by Irrlicht in the D3D8 and D3D9 renderer. To switch 3497- Antialiasing is now supported by Irrlicht in the D3D8 and D3D9 renderer. To switch
3498 it on, use createDeviceEx() and set SIrrlichtCreationParameters::AntiAlias to true. 3498 it on, use createDeviceEx() and set SIrrlichtCreationParameters::AntiAlias to true.
3499 3499
3500- Irrlicht.NET can now run inside a pre created Windows.Form window. 3500- Irrlicht.NET can now run inside a pre created Windows.Form window.
3501 3501
3502- I'm no longer providing a Visual Studio 7.0 project/solution file for the Irrlicht 3502- I'm no longer providing a Visual Studio 7.0 project/solution file for the Irrlicht
3503 Engine sourcecode, only 7.1 and 6.0 are supported. If you are using Visual Studio 7.0, 3503 Engine sourcecode, only 7.1 and 6.0 are supported. If you are using Visual Studio 7.0,
3504 just open the .dsp file for Visual Studio 6.0, it will be converted automaticly. 3504 just open the .dsp file for Visual Studio 6.0, it will be converted automaticly.
3505 3505
3506- Irrlicht.NET includes now all basic GUI Elements and can capture GUI events. There are 3506- Irrlicht.NET includes now all basic GUI Elements and can capture GUI events. There are
3507 still some features missing, but it is already enough to do simple things like showing 3507 still some features missing, but it is already enough to do simple things like showing
3508 message boxes, displaying images, getting input strings, etc. 3508 message boxes, displaying images, getting input strings, etc.
3509 3509
3510- Improved the .NET documentation a bit. 3510- Improved the .NET documentation a bit.
3511 3511
3512- There is a full implemented ISceneCollisionManager now available in Irrlicht.NET. 3512- There is a full implemented ISceneCollisionManager now available in Irrlicht.NET.
3513 3513
3514- The Linux OpenGL renderer now supports mip mapping. 3514- The Linux OpenGL renderer now supports mip mapping.
3515 3515
3516- It is now possible to compile Irrlicht as shared lib in Linux. To do this, go into the source 3516- It is now possible to compile Irrlicht as shared lib in Linux. To do this, go into the source
3517 folder and run 'make sharedlib'. This should create a libIrrlicht.so.0.11.0 file in 3517 folder and run 'make sharedlib'. This should create a libIrrlicht.so.0.11.0 file in
3518 lib/Linux. To install it in /usr/local/lib, you can run 'make install'. 3518 lib/Linux. To install it in /usr/local/lib, you can run 'make install'.
3519 3519
3520- The drawing of the GUI system has been refactored and a lot of redundant code has 3520- The drawing of the GUI system has been refactored and a lot of redundant code has
3521 been removed. 3521 been removed.
3522 3522
3523- The new method IVideoDriver::draw2DRectangle() is able to draw rectangles not only 3523- The new method IVideoDriver::draw2DRectangle() is able to draw rectangles not only
3524 filled with a single color, but with a gradient from four colors. This is implemented 3524 filled with a single color, but with a gradient from four colors. This is implemented
3525 in all drivers except the Software driver which still uses one color for this method. 3525 in all drivers except the Software driver which still uses one color for this method.
3526 3526
3527- It is now possible to customize the GUI system's skin a lot more: Simply implement your 3527- It is now possible to customize the GUI system's skin a lot more: Simply implement your
3528 own IGUISkin interface and implement the draw..() methods. 3528 own IGUISkin interface and implement the draw..() methods.
3529 3529
3530- There are now two build-in skins available: Windows Classic and Windows Metallic. The 3530- There are now two build-in skins available: Windows Classic and Windows Metallic. The
3531 default skin is now Windows Metallic, if you want to change back to the old skin, use the 3531 default skin is now Windows Metallic, if you want to change back to the old skin, use the
3532 following code: 3532 following code:
3533 gui::IGUISkin* newskin = environment->createSkin(gui::EGST_WINDOWS_CLASSIC); 3533 gui::IGUISkin* newskin = environment->createSkin(gui::EGST_WINDOWS_CLASSIC);
3534 environment->setSkin(newskin); 3534 environment->setSkin(newskin);
3535 newskin->drop(); 3535 newskin->drop();
3536 3536
3537- Added improved keyboard input handling for the Linux version of Irrlicht, thanks to 3537- Added improved keyboard input handling for the Linux version of Irrlicht, thanks to
3538 Fabien Coutant for the fix. 3538 Fabien Coutant for the fix.
3539 3539
3540- Fixed a bug in the Linux OpenGLDriver which caused to load a wrong OpenGL extension 3540- Fixed a bug in the Linux OpenGLDriver which caused to load a wrong OpenGL extension
3541 and made multitexturing look quite strange. Thanks to hybrid for spotting out that 3541 and made multitexturing look quite strange. Thanks to hybrid for spotting out that
3542 bug. 3542 bug.
3543 3543
3544- COLLADA file loading now works the same like the loading of other meshes: Just 3544- COLLADA file loading now works the same like the loading of other meshes: Just
3545 call ISceneManager::getMesh("yourfile") and display it using for example 3545 call ISceneManager::getMesh("yourfile") and display it using for example
3546 ISceneManager::addAnimatedMesh(yourLoadedMesh); 3546 ISceneManager::addAnimatedMesh(yourLoadedMesh);
3547 To make it possible to create instances from meshes, lights and cameras in COLLADA 3547 To make it possible to create instances from meshes, lights and cameras in COLLADA
3548 files again as in irrlicht 0.10, just enable the collada instance creating mode: 3548 files again as in irrlicht 0.10, just enable the collada instance creating mode:
3549 SceneManager->getParameters()->setParameter(COLLADA_CREATE_SCENE_INSTANCES, true); 3549 SceneManager->getParameters()->setParameter(COLLADA_CREATE_SCENE_INSTANCES, true);
3550 3550
3551- Added lots of useful methods to the IStringParameters class. It is now possible to 3551- Added lots of useful methods to the IStringParameters class. It is now possible to
3552 set not only strings but also boolean, integer and float values as parameters. 3552 set not only strings but also boolean, integer and float values as parameters.
3553- Fixed a bug with the TRANSPARENT_ALPHA_CHANNEL materials in all renderers to make them 3553- Fixed a bug with the TRANSPARENT_ALPHA_CHANNEL materials in all renderers to make them
3554 work more as expected: They didn't write to the zbuffer. If you are using this 3554 work more as expected: They didn't write to the zbuffer. If you are using this
3555 material and you don't want the new setting, just set the ZWriteEnable flag in the 3555 material and you don't want the new setting, just set the ZWriteEnable flag in the
3556 SMaterial structure of your transparent material to false. Thanks to Fabien to 3556 SMaterial structure of your transparent material to false. Thanks to Fabien to
3557 point this out. 3557 point this out.
3558 3558
3559- There are now some new defines making it possible to use system installed libs instead of 3559- There are now some new defines making it possible to use system installed libs instead of
3560 the ones which come with Irrlicht: _IRR_USE_NON_SYSTEM_JPEG_LIB_, 3560 the ones which come with Irrlicht: _IRR_USE_NON_SYSTEM_JPEG_LIB_,
3561 _IRR_USE_NON_SYSTEM_LIB_PNG_ and _IRR_USE_NON_SYSTEM_ZLIB_, which are defined by default 3561 _IRR_USE_NON_SYSTEM_LIB_PNG_ and _IRR_USE_NON_SYSTEM_ZLIB_, which are defined by default
3562 in the file IrrCompileConfig.h 3562 in the file IrrCompileConfig.h
3563 3563
3564- Renamed ISceneManager::getStringParameters() to ISceneManager::getParameters() 3564- Renamed ISceneManager::getStringParameters() to ISceneManager::getParameters()
3565- Changed the define _IRR_D3D_SHADER_DEBUGGING to _IRR_D3D_NO_SHADER_DEBUGGING to be 3565- Changed the define _IRR_D3D_SHADER_DEBUGGING to _IRR_D3D_NO_SHADER_DEBUGGING to be
3566 able to make it defined by default and to let it be included in the doxygen documentation. 3566 able to make it defined by default and to let it be included in the doxygen documentation.
3567 3567
3568- The SceneManager now does not do any culling tests for cameras, lights and skyboxes. 3568- The SceneManager now does not do any culling tests for cameras, lights and skyboxes.
3569 3569
3570- Added a transformBoxEx() method to matrix4 which transforms a bounding box more accurate. 3570- Added a transformBoxEx() method to matrix4 which transforms a bounding box more accurate.
3571 3571
3572- Small edit box copy & paste bug fixed thanks to Fish HF 3572- Small edit box copy & paste bug fixed thanks to Fish HF
3573 3573
3574- Fixed a bug which caused the engine to read windows messages when embedded in 3574- Fixed a bug which caused the engine to read windows messages when embedded in
3575 a custom win32 control when called IrrlichtDevice::setResizeAble(). Thanks for 3575 a custom win32 control when called IrrlichtDevice::setResizeAble(). Thanks for
3576 Duncan Mac Leod to find that bug. 3576 Duncan Mac Leod to find that bug.
3577 3577
3578- Fixed a bug in the HLSL renderer which caused Irrlicht to crash, if no vertex shader 3578- Fixed a bug in the HLSL renderer which caused Irrlicht to crash, if no vertex shader
3579 was specified. Thanks to mightypanda for reporting this. 3579 was specified. Thanks to mightypanda for reporting this.
3580 3580
3581- Fixed a bug in the normal map generation thanks to jox. Parallax mapping and 3581- Fixed a bug in the normal map generation thanks to jox. Parallax mapping and
3582 normalmapping now even look a lot better because of this. ;) 3582 normalmapping now even look a lot better because of this. ;)
3583 3583
3584- Updated to irrXML 1.1: 3584- Updated to irrXML 1.1:
3585 - The XML parser is now also able to parse embedded text correctly when it is shorter than 3585 - The XML parser is now also able to parse embedded text correctly when it is shorter than
3586 2 characters. 3586 2 characters.
3587 - The XML parser now treats whitespace quite smart and doesn't report it when it is 3587 - The XML parser now treats whitespace quite smart and doesn't report it when it is
3588 obviously used for formatting the xml file. (Text won't be reported when it only contains 3588 obviously used for formatting the xml file. (Text won't be reported when it only contains
3589 whitespace and is shorter than 3 characters) 3589 whitespace and is shorter than 3 characters)
3590 - The XML parser won't crash anymore when the xml file is malformed and an attribute has 3590 - The XML parser won't crash anymore when the xml file is malformed and an attribute has
3591 an opening but no closing attribute. 3591 an opening but no closing attribute.
3592 - Removed a documentation which claimed that the xml parser doesn't work as the xml standard 3592 - Removed a documentation which claimed that the xml parser doesn't work as the xml standard
3593 when replacing special characters, which wasn't true. 3593 when replacing special characters, which wasn't true.
3594 3594
3595------------------------------------------------------------------------------------- 3595-------------------------------------------------------------------------------------
3596Changes in version 0.10.0 (26 May 2005) 3596Changes in version 0.10.0 (26 May 2005)
3597 3597
3598- The engine is now able to use parallax mapping. It's implemented for D3D9, D3D8 and OpenGL. 3598- The engine is now able to use parallax mapping. It's implemented for D3D9, D3D8 and OpenGL.
3599 The perPixelLighing tutorial shows how to use it. Thanks go to Terry Welsh who wrote 3599 The perPixelLighing tutorial shows how to use it. Thanks go to Terry Welsh who wrote
3600 the 'Parallax Mapping with Offset Limiting'-paper on which the Irrlicht implementation 3600 the 'Parallax Mapping with Offset Limiting'-paper on which the Irrlicht implementation
3601 is based and who allowed me to use his texture for use in the example. 3601 is based and who allowed me to use his texture for use in the example.
3602 3602
3603- Added render to texture support. Currently, only the D3D9, D3D8 and the software renderer 3603- Added render to texture support. Currently, only the D3D9, D3D8 and the software renderer
3604 are able to use this feature. There is a new example, showing how to render scenes into 3604 are able to use this feature. There is a new example, showing how to render scenes into
3605 a texture. 3605 a texture.
3606 3606
3607- Irrlicht now can load .png textures. There is also a new compile configuration 3607- Irrlicht now can load .png textures. There is also a new compile configuration
3608 define to exclude the png loading option: _IRR_COMPILE_WITH_LIBPNG_. Thanks to 3608 define to exclude the png loading option: _IRR_COMPILE_WITH_LIBPNG_. Thanks to
3609 rt who originally wrote the png loader and who allowed me to use and modify his code 3609 rt who originally wrote the png loader and who allowed me to use and modify his code
3610 and place it under the Irrlicht Engine license. 3610 and place it under the Irrlicht Engine license.
3611 3611
3612- Added support for COLLADA files. COLLADA is an open Digital Asset Exchange Schema for the 3612- Added support for COLLADA files. COLLADA is an open Digital Asset Exchange Schema for the
3613 interactive 3D industry. There are exporters and importers for this format available 3613 interactive 3D industry. There are exporters and importers for this format available
3614 for most of the big 3d packages at http://collada.org. Irrlicht can import COLLADA files 3614 for most of the big 3d packages at http://collada.org. Irrlicht can import COLLADA files
3615 by using the ISceneManager::getMesh() method. As COLLADA need not contain only one single mesh 3615 by using the ISceneManager::getMesh() method. As COLLADA need not contain only one single mesh
3616 but multiple meshes and a whole scene setup with lights, cameras and mesh instances, 3616 but multiple meshes and a whole scene setup with lights, cameras and mesh instances,
3617 this loader sets up a scene as described by the COLLADA file instead of loading 3617 this loader sets up a scene as described by the COLLADA file instead of loading
3618 and returning one mesh. The returned mesh is just a dummy object. However, if the 3618 and returning one mesh. The returned mesh is just a dummy object. However, if the
3619 COLLADA file does not include any <instance> tags, only meshes will be loaded by the 3619 COLLADA file does not include any <instance> tags, only meshes will be loaded by the
3620 engine and no scene nodes should be created. Meshes included in 3620 engine and no scene nodes should be created. Meshes included in
3621 the scene will be added into the scene manager with the following naming scheme: 3621 the scene will be added into the scene manager with the following naming scheme:
3622 path/to/file/file.dea#meshname. The loading of such meshes is logged. 3622 path/to/file/file.dea#meshname. The loading of such meshes is logged.
3623 Currently, this loader is able to create meshes (made of only polygons), lights, 3623 Currently, this loader is able to create meshes (made of only polygons), lights,
3624 and cameras. Materials and animations are currently not supported but this will 3624 and cameras. Materials and animations are currently not supported but this will
3625 change with future releases. 3625 change with future releases.
3626 3626
3627- Added Delgine DeleD .dmf mesh loading support. I simply added Salvatore Russo's .dmf loader to 3627- Added Delgine DeleD .dmf mesh loading support. I simply added Salvatore Russo's .dmf loader to
3628 Irrlicht, and changed some parts of it. Thanks to Salvatore for his work and for allowing 3628 Irrlicht, and changed some parts of it. Thanks to Salvatore for his work and for allowing
3629 me to use his code in Irrlicht and put it under Irrlicht's license. 3629 me to use his code in Irrlicht and put it under Irrlicht's license.
3630 3630
3631- Specular highlights are now finally usable the engine. To activate, simply set the shininess 3631- Specular highlights are now finally usable the engine. To activate, simply set the shininess
3632 of a scene node to a value other than 0: sceneNode->getMaterial(0).Shininess = 20.0f; 3632 of a scene node to a value other than 0: sceneNode->getMaterial(0).Shininess = 20.0f;
3633 You can also change the color of the highlights using 3633 You can also change the color of the highlights using
3634 sceneNode->getMaterial(0).SpecularColor.set(255,255,255,255);. The specular color of the 3634 sceneNode->getMaterial(0).SpecularColor.set(255,255,255,255);. The specular color of the
3635 dynamic lights will influence the highlight color, too, but they are set to a useful 3635 dynamic lights will influence the highlight color, too, but they are set to a useful
3636 value by default when creating the light. This feature is currently only available in 3636 value by default when creating the light. This feature is currently only available in
3637 the D3D drivers. 3637 the D3D drivers.
3638 3638
3639- Added a new material type: EMT_TRANSPARENT_ALPHA_CHANNEL_REF. This draws a pixel of the 3639- Added a new material type: EMT_TRANSPARENT_ALPHA_CHANNEL_REF. This draws a pixel of the
3640 material only when the alpha channel has a value greater than 128. It is ideal for drawing 3640 material only when the alpha channel has a value greater than 128. It is ideal for drawing
3641 for example leafes of plants and does not use alpha blending, so it is a lot faster than 3641 for example leafes of plants and does not use alpha blending, so it is a lot faster than
3642 EMT_TRANSPARENT_ALPHA_CHANNEL. 3642 EMT_TRANSPARENT_ALPHA_CHANNEL.
3643 3643
3644- There is now a createDeviceEx() method with which it is possible to create an Irrlicht Engine 3644- There is now a createDeviceEx() method with which it is possible to create an Irrlicht Engine
3645 device into an already existing window. This currently only works in Windows. 3645 device into an already existing window. This currently only works in Windows.
3646 This method will be extended in the future with other options. 3646 This method will be extended in the future with other options.
3647 3647
3648- Irrlicht.NET has been extended with ports of the SceneNodeAnimators, TriangleSelectors 3648- Irrlicht.NET has been extended with ports of the SceneNodeAnimators, TriangleSelectors
3649 the FileSystem and Font drawing. Also the documentation of it has been improved a lot. 3649 the FileSystem and Font drawing. Also the documentation of it has been improved a lot.
3650 3650
3651- There are two new tutorials/examples available. One demonstrates how to use render to texture 3651- There are two new tutorials/examples available. One demonstrates how to use render to texture
3652 feature, the other one shows how to run Irrlicht inside a precreated Win32 window/widget. 3652 feature, the other one shows how to run Irrlicht inside a precreated Win32 window/widget.
3653 This means there are now 17 examples available in the SDK. 3653 This means there are now 17 examples available in the SDK.
3654 3654
3655- The software renderer now renders 3d geometry transparent when its material is 3655- The software renderer now renders 3d geometry transparent when its material is
3656 somewhat transparent. 3656 somewhat transparent.
3657 3657
3658- The XML Parser has been enhanced. Several small bugs have been fixed and there are some 3658- The XML Parser has been enhanced. Several small bugs have been fixed and there are some
3659 new features: The parser can now read ASCII, UTF-8, UTF-16 and UTF-32 (both little and 3659 new features: The parser can now read ASCII, UTF-8, UTF-16 and UTF-32 (both little and
3660 big endian) files, and return the parsed string data in one selectable format from the 3660 big endian) files, and return the parsed string data in one selectable format from the
3661 same list. In addition, it is now completely independent from Irrlicht. If you wish to 3661 same list. In addition, it is now completely independent from Irrlicht. If you wish to
3662 use the parser without the engine, take a look at the newly created project at 3662 use the parser without the engine, take a look at the newly created project at
3663 http://irrxml.sourceforge.net. 3663 http://irrxml.sourceforge.net.
3664 3664
3665- Upgraded to DirectX Exporter Mod 1.3.1 3665- Upgraded to DirectX Exporter Mod 1.3.1
3666 3666
3667- Upgraded dev-cpp project file to Dev-C++ 4.9.9.2. Removed dependency to zlib and 3667- Upgraded dev-cpp project file to Dev-C++ 4.9.9.2. Removed dependency to zlib and
3668 jpeglib for devcpp, the necessary .c files are now simply included in the project. 3668 jpeglib for devcpp, the necessary .c files are now simply included in the project.
3669 3669
3670- Renamed the VisualStudio and DevCpp sub directories in the SDK to Win32-gcc, 3670- Renamed the VisualStudio and DevCpp sub directories in the SDK to Win32-gcc,
3671 Win32-VisualStudio. 3671 Win32-VisualStudio.
3672 3672
3673- Fixed a bug in irrXML causing it to replace xml characters wrongly sometimes. 3673- Fixed a bug in irrXML causing it to replace xml characters wrongly sometimes.
3674 3674
3675- The C++ decorations at createDevice() have been added again, because lots of people 3675- The C++ decorations at createDevice() have been added again, because lots of people
3676 started to mix the gcc and the microsoft .DLL and got confused why the thing crashed 3676 started to mix the gcc and the microsoft .DLL and got confused why the thing crashed
3677 at random positions. 3677 at random positions.
3678 3678
3679- Moved heapsink and heapsort into the core namespace. 3679- Moved heapsink and heapsort into the core namespace.
3680 3680
3681- Updated to My3D version 3.15 3681- Updated to My3D version 3.15
3682 3682
3683- Fixed the wrongly drawn alpha channel material in OpenGL driver and a problem with the 3683- Fixed the wrongly drawn alpha channel material in OpenGL driver and a problem with the
3684 VertexAlpha material in the same driver. 3684 VertexAlpha material in the same driver.
3685 3685
3686- Implemented multipass rendering in the OCTTree scene node now too. This means that octtrees can 3686- Implemented multipass rendering in the OCTTree scene node now too. This means that octtrees can
3687 now contain transparent materials as well. 3687 now contain transparent materials as well.
3688 3688
3689- Improved string comparison speed, especially when comparing with pointer to char or w_char, 3689- Improved string comparison speed, especially when comparing with pointer to char or w_char,
3690 no more temporary strings are being constructed now. In addition, there are some new 3690 no more temporary strings are being constructed now. In addition, there are some new
3691 string comparison methods in this class. 3691 string comparison methods in this class.
3692 3692
3693- Added string::replace() method. 3693- Added string::replace() method.
3694 3694
3695- Added string::trim() method. 3695- Added string::trim() method.
3696 3696
3697- Addes string::erase() method. 3697- Addes string::erase() method.
3698 3698
3699- Fixed a bug in array which caused data corruption if an element which already inside the 3699- Fixed a bug in array which caused data corruption if an element which already inside the
3700 the array was pushed_back. Thanks to vox for reporting this and to provide a solutin 3700 the array was pushed_back. Thanks to vox for reporting this and to provide a solutin
3701 3701
3702- Added ISceneManager::addMesh() method. 3702- Added ISceneManager::addMesh() method.
3703 3703
3704- Added IMeshManipulator::recalculateNormals(IMeshBuffer*) method. 3704- Added IMeshManipulator::recalculateNormals(IMeshBuffer*) method.
3705 3705
3706- The file array.h has been renamed to irrArray.h 3706- The file array.h has been renamed to irrArray.h
3707 3707
3708- Due to a bug, Irrlicht 0.9 didn't cull the scene nodes anymore which resulted in a huge 3708- Due to a bug, Irrlicht 0.9 didn't cull the scene nodes anymore which resulted in a huge
3709 performance loss. This is fixed now. 3709 performance loss. This is fixed now.
3710 3710
3711- After lots releases ignoring the 'make the fps camera smoother request', it is now 3711- After lots releases ignoring the 'make the fps camera smoother request', it is now
3712 finally integrated. 3712 finally integrated.
3713 3713
3714- Removed audiere dependency and the mp3 file, reeducing SDK download size. 3714- Removed audiere dependency and the mp3 file, reeducing SDK download size.
3715 3715
3716- A bug was fixed causing the binding of the wrong fragment program sometimes in OpenGL. 3716- A bug was fixed causing the binding of the wrong fragment program sometimes in OpenGL.
3717 3717
3718- Lots of internal filenames have been renamed. All CVideo* files have been renamed to 3718- Lots of internal filenames have been renamed. All CVideo* files have been renamed to
3719 fit the other name conventions, CD3D9Driver.h into CD3D9Driver.h for example. 3719 fit the other name conventions, CD3D9Driver.h into CD3D9Driver.h for example.
3720 3720
3721- The IMaterialRenderer interface now has the new method getRenderCapability() which 3721- The IMaterialRenderer interface now has the new method getRenderCapability() which
3722 returns if the material is able to be rendererd with all settings on current hardware. 3722 returns if the material is able to be rendererd with all settings on current hardware.
3723 3723
3724- Added IMeshManipulator::setVertexColors(); 3724- Added IMeshManipulator::setVertexColors();
3725 3725
3726- Added float color reading support in the 3DS loader. 3726- Added float color reading support in the 3DS loader.
3727 3727
3728- video::EVDF_BILINEAR_FILER renamed to EVDF_BILINEAR_FILTER 3728- video::EVDF_BILINEAR_FILER renamed to EVDF_BILINEAR_FILTER
3729 3729
3730- core::equals function added. 3730- core::equals function added.
3731 3731
3732- fixed a small bug in fast_atof thanks to jox 3732- fixed a small bug in fast_atof thanks to jox
3733 3733
3734- Added a method ICamera::isOrthogonal() which is being used by 3734- Added a method ICamera::isOrthogonal() which is being used by
3735 ISceneCollisionManager::getRayFromScreenCoordinates(), thanks to a bug report and fix by 3735 ISceneCollisionManager::getRayFromScreenCoordinates(), thanks to a bug report and fix by
3736 jox in this thread: http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=6243 3736 jox in this thread: http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=6243
3737 3737
3738- Added some fixes to the GUI environment to make the parent and child pointers be more 3738- Added some fixes to the GUI environment to make the parent and child pointers be more
3739 consistent as suggested by jox in this thread: http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=6220 3739 consistent as suggested by jox in this thread: http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=6220
3740 3740
3741- Fixed a bug which caused the ambient light not to be reset after a window resize in D3D8 and 9. 3741- Fixed a bug which caused the ambient light not to be reset after a window resize in D3D8 and 9.
3742 Thanks to jox for this bug report and fix. 3742 Thanks to jox for this bug report and fix.
3743 3743
3744- vector3df equals method added. 3744- vector3df equals method added.
3745 3745
3746- added SColorf::getInterpolated() method 3746- added SColorf::getInterpolated() method
3747 3747
3748- Moved ITextSceneNode interface to include folder. 3748- Moved ITextSceneNode interface to include folder.
3749 3749
3750- Fixed a small bug in the My3DLoader which failed sometimes finding the right textures. 3750- Fixed a small bug in the My3DLoader which failed sometimes finding the right textures.
3751 3751
3752- Fixed bounding box problem with meshes without joints in .X file loader, thanks to 3752- Fixed bounding box problem with meshes without joints in .X file loader, thanks to
3753 jox. (http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=6669) 3753 jox. (http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=6669)
3754 3754
3755- Fixed IFileSystem::getWorkingDirectory in Linux version. 3755- Fixed IFileSystem::getWorkingDirectory in Linux version.
3756 (http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=6678) 3756 (http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=6678)
3757 3757
3758------------------------------------------------------------------------------------- 3758-------------------------------------------------------------------------------------
3759Changes in version 0.9 (28 Mar 2005) 3759Changes in version 0.9 (28 Mar 2005)
3760 3760
3761- There is now a 100% working terrain renderer available. The old buggy and unfinished terrain 3761- There is now a 100% working terrain renderer available. The old buggy and unfinished terrain
3762 scene node has been replaced by a new TerrainSceneNode which is based on Spintz's 3762 scene node has been replaced by a new TerrainSceneNode which is based on Spintz's
3763 GeoMipMapSceneNode and Soconnes terrain renderer. Lots of thanks for their work on 3763 GeoMipMapSceneNode and Soconnes terrain renderer. Lots of thanks for their work on
3764 this and that they allowed it to be modified and integrated into Irrlicht. 3764 this and that they allowed it to be modified and integrated into Irrlicht.
3765 3765
3766- It is now possible for a scene node to draw itself in multiple passes. This means it can 3766- It is now possible for a scene node to draw itself in multiple passes. This means it can
3767 register itself for multiple render passes (E_SCENE_NODE_RENDER_PASS) and during rendering 3767 register itself for multiple render passes (E_SCENE_NODE_RENDER_PASS) and during rendering
3768 it can query the current render pass using ISceneManager::getSceneNodeRenderPass(). With 3768 it can query the current render pass using ISceneManager::getSceneNodeRenderPass(). With
3769 this, SceneNodes can contain solid and transparent materials at the same time and will be 3769 this, SceneNodes can contain solid and transparent materials at the same time and will be
3770 rendered in the correct order from now on. 3770 rendered in the correct order from now on.
3771 The IAnimatedMeshSceneNode and the IMeshSceneNode implement this feature, so it is now 3771 The IAnimatedMeshSceneNode and the IMeshSceneNode implement this feature, so it is now
3772 possible to create for example cars with transparent windows without the need of a separate 3772 possible to create for example cars with transparent windows without the need of a separate
3773 scene node. Because of this change, all render time enumeration values have been renamed. 3773 scene node. Because of this change, all render time enumeration values have been renamed.
3774 3774
3775- Irrlicht is now able to load OCT files directly. OCT files 3775- Irrlicht is now able to load OCT files directly. OCT files
3776 can be created with Paul Nette's Radiosity Processor from http://www.fluidstudios.com 3776 can be created with Paul Nette's Radiosity Processor from http://www.fluidstudios.com
3777 or exported from Blender with Murphy McCauley's exporter. This exporter can be found 3777 or exported from Blender with Murphy McCauley's exporter. This exporter can be found
3778 in the directory \exporters\OCTTools of the Irrlicht SDK or from his homepage 3778 in the directory \exporters\OCTTools of the Irrlicht SDK or from his homepage
3779 http://www.constantthought.com/project/OCTTools. A lot of thanks go to Murphy McCauley 3779 http://www.constantthought.com/project/OCTTools. A lot of thanks go to Murphy McCauley
3780 for this work on this and his permission to include his OCTTools into Irrlicht. 3780 for this work on this and his permission to include his OCTTools into Irrlicht.
3781 3781
3782- Irrlicht is now able to load Cartography shop 4 (.csm) files directly. A lot of 3782- Irrlicht is now able to load Cartography shop 4 (.csm) files directly. A lot of
3783 thanks go to Saurav Mohapatra for this work on this and his permission to adapt and 3783 thanks go to Saurav Mohapatra for this work on this and his permission to adapt and
3784 include his IrrCSM library into Irrlicht. If you are using .csm files, please note that 3784 include his IrrCSM library into Irrlicht. If you are using .csm files, please note that
3785 you'll have to set the path of the textures before loading meshes. You can do this using 3785 you'll have to set the path of the textures before loading meshes. You can do this using
3786 SceneManager->getStringParameters()->setParameter(scene::CSM_TEXTURE_PATH, 3786 SceneManager->getStringParameters()->setParameter(scene::CSM_TEXTURE_PATH,
3787 "path/to/your/textures");. The original loader can be obtained from 3787 "path/to/your/textures");. The original loader can be obtained from
3788 http://www.geocities.com/standard_template/index.html 3788 http://www.geocities.com/standard_template/index.html
3789 3789
3790- Irrlicht is now able to load Pulsar LMTools (.lmts) files directly because it now 3790- Irrlicht is now able to load Pulsar LMTools (.lmts) files directly because it now
3791 integrates a modified version of Jonas Petersen's lmts loader in version 1.5 (from 3791 integrates a modified version of Jonas Petersen's lmts loader in version 1.5 (from
3792 http://development.mindfloaters.de/). Lots of thanks go to him for creating this 3792 http://development.mindfloaters.de/). Lots of thanks go to him for creating this
3793 loader and giving his permission to add it to Irrlicht. If you are using this loader, 3793 loader and giving his permission to add it to Irrlicht. If you are using this loader,
3794 please note that you can set the path of the textures before loading .lmts files. 3794 please note that you can set the path of the textures before loading .lmts files.
3795 You can do this using SceneManager->getStringParameters()->setParameter( 3795 You can do this using SceneManager->getStringParameters()->setParameter(
3796 scene::LMTS_TEXTURE_PATH, "path/to/your/textures"); 3796 scene::LMTS_TEXTURE_PATH, "path/to/your/textures");
3797 3797
3798- Irrlicht is now able to load my3D files directly. The My3DTools 3.12 loader by 3798- Irrlicht is now able to load my3D files directly. The My3DTools 3.12 loader by
3799 Zhuck Dimitry was (a bit modified and) integrated into the engine. Lots of thanks 3799 Zhuck Dimitry was (a bit modified and) integrated into the engine. Lots of thanks
3800 go to him for his work and for giving his permission to do that. Newer versions 3800 go to him for his work and for giving his permission to do that. Newer versions
3801 of this loader can be found at http://my3dproject.nm.ru. The exporters for this 3801 of this loader can be found at http://my3dproject.nm.ru. The exporters for this
3802 file format have also been added into the \exporters directory of the SDK. 3802 file format have also been added into the \exporters directory of the SDK.
3803 3803
3804- To be able to replace built-in meshloaders with newer external versions without the 3804- To be able to replace built-in meshloaders with newer external versions without the
3805 need of recompiling the engine, now mesh loaders which are added to the engine using 3805 need of recompiling the engine, now mesh loaders which are added to the engine using
3806 ISceneManager::addExternalMeshLoader() are prefered over built-in mesh loaders. 3806 ISceneManager::addExternalMeshLoader() are prefered over built-in mesh loaders.
3807 Thanks to for his suggestion of this. 3807 Thanks to for his suggestion of this.
3808 3808
3809- D3D8 and D3D9 support for dev-cpp has been improved. If you are using Dev-Cpp and 3809- D3D8 and D3D9 support for dev-cpp has been improved. If you are using Dev-Cpp and
3810 a DirectX-Devpack for recompiling the engine, just add 3810 a DirectX-Devpack for recompiling the engine, just add
3811 -DIRR_COMPILE_WITH_DX9_DEV_PACK to your compiler 3811 -DIRR_COMPILE_WITH_DX9_DEV_PACK to your compiler
3812 settings and something like -ld3dx9 -ld3dx8 to the linker settings and 3812 settings and something like -ld3dx9 -ld3dx8 to the linker settings and
3813 press 'compile'. 3813 press 'compile'.
3814 3814
3815- The SceneManager now contains an interface for storing and exchanging parameters. 3815- The SceneManager now contains an interface for storing and exchanging parameters.
3816 ISceneManager::getStringParameters() returns IStringParameters, which can be used for 3816 ISceneManager::getStringParameters() returns IStringParameters, which can be used for
3817 example by extensions like external mesh loaders to set and read independent parameters. 3817 example by extensions like external mesh loaders to set and read independent parameters.
3818 This is also currently used by the newly built in CMS, LMTS and MY3D loader: It is possible to 3818 This is also currently used by the newly built in CMS, LMTS and MY3D loader: It is possible to
3819 set a value 'CSM_TexturePath', 'LMTS_TexturePath' or 'MY3D_TexturePath' to let them know 3819 set a value 'CSM_TexturePath', 'LMTS_TexturePath' or 'MY3D_TexturePath' to let them know
3820 the path of the textures. 3820 the path of the textures.
3821 3821
3822- IAnimatedMeshSceneNode now has two new methods for being able to have more influcence 3822- IAnimatedMeshSceneNode now has two new methods for being able to have more influcence
3823 on the animation playback: It is now possible to set the playback mode to looped or 3823 on the animation playback: It is now possible to set the playback mode to looped or
3824 non looped with IAnimatedMeshSceneNode::setLoopMode() and it is possible to set 3824 non looped with IAnimatedMeshSceneNode::setLoopMode() and it is possible to set
3825 a callback interface which will be called when animation playback has finished 3825 a callback interface which will be called when animation playback has finished
3826 using IAnimatedMeshSceneNode::setAnimationEndCallback(). Thanks to Electron for his 3826 using IAnimatedMeshSceneNode::setAnimationEndCallback(). Thanks to Electron for his
3827 suggestion for this addition. 3827 suggestion for this addition.
3828 3828
3829- The software renderer has a new triangle renderer specialized on disabled zread and write. 3829- The software renderer has a new triangle renderer specialized on disabled zread and write.
3830 This means that skyboxes are now rendered in the correct order when using the software 3830 This means that skyboxes are now rendered in the correct order when using the software
3831 renderer. 3831 renderer.
3832 3832
3833- Multitexturing and other extensions in Linux are now turned on by default. There is a new 3833- Multitexturing and other extensions in Linux are now turned on by default. There is a new
3834 #define in the file IrrCompileConfig.h for disabling this again: LINUX_OPENGL_USE_EXTENSIONS 3834 #define in the file IrrCompileConfig.h for disabling this again: LINUX_OPENGL_USE_EXTENSIONS
3835 3835
3836- There is now a EET_USER_EVENT user event type for making it possible to send custom 3836- There is now a EET_USER_EVENT user event type for making it possible to send custom
3837 events through the system. 3837 events through the system.
3838 3838
3839- The setTarget()-method of the FPSCameraSceneNode now is finally correctly implemented. 3839- The setTarget()-method of the FPSCameraSceneNode now is finally correctly implemented.
3840 3840
3841- Changing parents of scene nodes is now much safer. The parent member of a scene node now is 3841- Changing parents of scene nodes is now much safer. The parent member of a scene node now is
3842 set to 0 in all cases and should never point to invalid data when rearranging the scene node 3842 set to 0 in all cases and should never point to invalid data when rearranging the scene node
3843 tree. In addition, there is now a getParent() method in the ISceneNode class. 3843 tree. In addition, there is now a getParent() method in the ISceneNode class.
3844 3844
3845- Debug breakpoints using "_asm int 3" are now only being used when in debug mode and 3845- Debug breakpoints using "_asm int 3" are now only being used when in debug mode and
3846 using Micosoft's compiler. Now more exotic compilers like BorlandC++ will like 3846 using Micosoft's compiler. Now more exotic compilers like BorlandC++ will like
3847 Irrlicht better because of this. 3847 Irrlicht better because of this.
3848 3848
3849- Updated zlib version to 1.2.2 3849- Updated zlib version to 1.2.2
3850 3850
3851- An implementation of 3D triangle clipping in the software renderer has been started. It 3851- An implementation of 3D triangle clipping in the software renderer has been started. It
3852 is not 100% ready, but it is a beginning. This means now for version 0.9, that there are 3852 is not 100% ready, but it is a beginning. This means now for version 0.9, that there are
3853 not that much artifact triangles drawn anymore. But this means also that drawing is 3853 not that much artifact triangles drawn anymore. But this means also that drawing is
3854 a lot faster and that triangles clipped at the border of the screen will disappear 3854 a lot faster and that triangles clipped at the border of the screen will disappear
3855 too fast. If anyone wants to finish the drawClippedIndexedTriangleListT() method 3855 too fast. If anyone wants to finish the drawClippedIndexedTriangleListT() method
3856 in the CSoftwareDriver class, he is welcome :) 3856 in the CSoftwareDriver class, he is welcome :)
3857 3857
3858- There is a new parameter in the IVideoDriver::createImageFromData() which causes the 3858- There is a new parameter in the IVideoDriver::createImageFromData() which causes the
3859 image to be able to own foreign memory. 3859 image to be able to own foreign memory.
3860 3860
3861- A renderstate setting has been fixed which caused to disable mip maps on wrong geometry 3861- A renderstate setting has been fixed which caused to disable mip maps on wrong geometry
3862 when there was other geometry which had no mip maps. At least this bug doesn't appear 3862 when there was other geometry which had no mip maps. At least this bug doesn't appear
3863 on my hardware any more, I hope this means the problem it is now fixed. 3863 on my hardware any more, I hope this means the problem it is now fixed.
3864 3864
3865- A bug in the D3D version of the stencil shadows has been fixed thanks to Murphy. Sometimes 3865- A bug in the D3D version of the stencil shadows has been fixed thanks to Murphy. Sometimes
3866 you could see a small shadow similar to the the real shadow in the scene. This should now 3866 you could see a small shadow similar to the the real shadow in the scene. This should now
3867 be fixed. 3867 be fixed.
3868 3868
3869- Irrlicht can now draw non filled concyclic reqular 2d polyons like triangles, tetragons, 3869- Irrlicht can now draw non filled concyclic reqular 2d polyons like triangles, tetragons,
3870 pentagons, hexagons, heptagons, octagons, enneagons, decagons, hendecagons, dodecagon and 3870 pentagons, hexagons, heptagons, octagons, enneagons, decagons, hendecagons, dodecagon and
3871 triskaidecagons. And circles. Yes, I was a little bit bored. Christian Lins made a 3871 triskaidecagons. And circles. Yes, I was a little bit bored. Christian Lins made a
3872 suggestion to add 2D circle drawing support to Irrlicht, and I did this, but also added 3872 suggestion to add 2D circle drawing support to Irrlicht, and I did this, but also added
3873 support for drawing these figures using the same method. Check out 3873 support for drawing these figures using the same method. Check out
3874 IVideoDriver::draw2DPolygon(). 3874 IVideoDriver::draw2DPolygon().
3875 3875
3876- Removed a memory leak when creating hlsl pixel shaders. 3876- Removed a memory leak when creating hlsl pixel shaders.
3877 3877
3878- I've made varoius updates to the documentation and moved to doxygen 1.4 3878- I've made varoius updates to the documentation and moved to doxygen 1.4
3879 3879
3880- Fixed a bug in the xml reader which caused it to crash when reading empty xml files. 3880- Fixed a bug in the xml reader which caused it to crash when reading empty xml files.
3881 3881
3882- Removed the buggy bsp tree scene node from the engine. 3882- Removed the buggy bsp tree scene node from the engine.
3883 3883
3884- Tweaked some settings with some GUI elements. 3884- Tweaked some settings with some GUI elements.
3885 3885
3886- ISceneNode::getAbsolutePosition now should be way faster. 3886- ISceneNode::getAbsolutePosition now should be way faster.
3887 3887
3888- Applied a fix by William Finlayson to the opengl stencil shadow drawing code which 3888- Applied a fix by William Finlayson to the opengl stencil shadow drawing code which
3889 fixes several bugs. 3889 fixes several bugs.
3890 3890
3891- There is now a min_ and max_ template function available in the core namespace. 3891- There is now a min_ and max_ template function available in the core namespace.
3892 3892
3893- Added some bugfixes to MayaCameraSceneNode by jox. An even more improved version can 3893- Added some bugfixes to MayaCameraSceneNode by jox. An even more improved version can
3894 be found at http://development.mindfloaters.de/Downloads.12.0.html. 3894 be found at http://development.mindfloaters.de/Downloads.12.0.html.
3895 3895
3896- core::array now has a push_front method. 3896- core::array now has a push_front method.
3897 3897
3898- core::array now has an insert method. (Thanks to jox) 3898- core::array now has an insert method. (Thanks to jox)
3899 3899
3900- IrrlichtDevice now has a getEventReceiver() method. 3900- IrrlichtDevice now has a getEventReceiver() method.
3901 3901
3902- Fixed a mouse wheel - mouse coordinates bug thanks to a bug report and fix by jox. 3902- Fixed a mouse wheel - mouse coordinates bug thanks to a bug report and fix by jox.
3903 3903
3904- Changed the first parameter in IGUIContextMenu::addItem(wchar_t* text, ...) to const. 3904- Changed the first parameter in IGUIContextMenu::addItem(wchar_t* text, ...) to const.
3905 Thanks to jox.. again. :) 3905 Thanks to jox.. again. :)
3906 3906
3907- Fixed ignore path bug in zip file reader thanks to Pr3t3nd3r. It is now possible 3907- Fixed ignore path bug in zip file reader thanks to Pr3t3nd3r. It is now possible
3908 to use zip files with the complete path to the files from the archive. 3908 to use zip files with the complete path to the files from the archive.
3909 3909
3910- Fixed matrix4::rotateVect method after a suggestion by several users. (I think Electron, 3910- Fixed matrix4::rotateVect method after a suggestion by several users. (I think Electron,
3911 Pr3t3nd3r, Jox) Thanks all :) 3911 Pr3t3nd3r, Jox) Thanks all :)
3912 3912
3913- Fixed a bug in CGUIEditbox that enables you to write more characters than the max set 3913- Fixed a bug in CGUIEditbox that enables you to write more characters than the max set
3914 limit, thanks to Rush for the bug report and fix. 3914 limit, thanks to Rush for the bug report and fix.
3915 3915
3916- Added getAngleTrig() method to vector2d as suggested by Pr3t3nd3r, thanks! 3916- Added getAngleTrig() method to vector2d as suggested by Pr3t3nd3r, thanks!
3917 3917
3918- After a suggestion by schick, plane3d<T> now stores the normal vector first, and then 3918- After a suggestion by schick, plane3d<T> now stores the normal vector first, and then
3919 the distance to the origin. 3919 the distance to the origin.
3920 3920
3921- A bug was fixed which caused 2D elements to be drawn with a second texture set in OpenGL 3921- A bug was fixed which caused 2D elements to be drawn with a second texture set in OpenGL
3922 mode when 3D geometry with >1 textures has been rendered before. This effect has often 3922 mode when 3D geometry with >1 textures has been rendered before. This effect has often
3923 been reported as darkened 2D gui in the forum. 3923 been reported as darkened 2D gui in the forum.
3924 3924
3925- A bug in IrrCompileConfig prevented users to be able to recompile irrlicht with D3D9 3925- A bug in IrrCompileConfig prevented users to be able to recompile irrlicht with D3D9
3926 with gcc. This is now fixed, thanks to Jedive. 3926 with gcc. This is now fixed, thanks to Jedive.
3927 3927
3928- The project setup for Dev-C++ is now nicer. Added lots of folders and cleaned up the 3928- The project setup for Dev-C++ is now nicer. Added lots of folders and cleaned up the
3929 whole setup a little bit with this. 3929 whole setup a little bit with this.
3930 3930
3931- Fixed a small bug in CGUIScrollbar reported by Klaus Niederkrueger. 3931- Fixed a small bug in CGUIScrollbar reported by Klaus Niederkrueger.
3932 3932
3933- The Checkbox rect is now clipped correctly, thanks to jox for that bug report. 3933- The Checkbox rect is now clipped correctly, thanks to jox for that bug report.
3934 3934
3935- The debug names of all scene nodes and GUI elements are now set correctly. 3935- The debug names of all scene nodes and GUI elements are now set correctly.
3936 3936
3937- Applied a patch making it possible to compile Irrlicht without OpenGL in Linux. 3937- Applied a patch making it possible to compile Irrlicht without OpenGL in Linux.
3938 3938
3939- core::rect::clipAgainst was fixed thanks to a bug report and correction by Jox. 3939- core::rect::clipAgainst was fixed thanks to a bug report and correction by Jox.
3940 3940
3941------------------------------------------------------------------------------------- 3941-------------------------------------------------------------------------------------
3942Changes in version 0.8 (19 Feb 2005) 3942Changes in version 0.8 (19 Feb 2005)
3943 3943
3944- Irrlicht now supports HLSL. This is possible using the new 3944- Irrlicht now supports HLSL. This is possible using the new
3945 IGPUProgrammingServices::addHighLevelShaderMaterial() methods. Also, methods for setting high 3945 IGPUProgrammingServices::addHighLevelShaderMaterial() methods. Also, methods for setting high
3946 level shader constants have been added. 3946 level shader constants have been added.
3947 3947
3948- Irrlicht.NET now supports events and cursor control. This means now you can read mouse 3948- Irrlicht.NET now supports events and cursor control. This means now you can read mouse
3949 and keyboard input from .NET projects like C# and VB.net too. 3949 and keyboard input from .NET projects like C# and VB.net too.
3950 3950
3951- There are three new built in materials for doing normal/bump mapping available: 3951- There are three new built in materials for doing normal/bump mapping available:
3952 EMT_NORMAL_MAP_SOLID, EMT_NORMAL_MAP_TRANSPARENT_ADD_COLOR and 3952 EMT_NORMAL_MAP_SOLID, EMT_NORMAL_MAP_TRANSPARENT_ADD_COLOR and
3953 EMT_NORMAL_MAP_TRANSPARENT_VERTEX_ALPHA. If the hardware does not 3953 EMT_NORMAL_MAP_TRANSPARENT_VERTEX_ALPHA. If the hardware does not
3954 support these, the materials will fall back to their base materials. To be able to 3954 support these, the materials will fall back to their base materials. To be able to
3955 use these materials, there is the new vertex type 'S3DVertexTangents', the material 3955 use these materials, there is the new vertex type 'S3DVertexTangents', the material
3956 does not work with any other vertex types. There are some new methods to create meshes 3956 does not work with any other vertex types. There are some new methods to create meshes
3957 with this vertex type (IMeshManipulator::createMeshWithTangents()). 3957 with this vertex type (IMeshManipulator::createMeshWithTangents()).
3958 3958
3959- A new example/tutorial (11.PerPixelLighting) shows how to use per pixel lighting 3959- A new example/tutorial (11.PerPixelLighting) shows how to use per pixel lighting
3960 in your applications. 3960 in your applications.
3961 3961
3962- The software renderer now works in Linux, too. 3962- The software renderer now works in Linux, too.
3963 3963
3964- Irrlicht now has a built-in normal map generator. It creates on the fly 32 and 16 bit 3964- Irrlicht now has a built-in normal map generator. It creates on the fly 32 and 16 bit
3965 normal maps from height maps (IVideoDriver::makeNormalMapTexture). As most other things 3965 normal maps from height maps (IVideoDriver::makeNormalMapTexture). As most other things
3966 in Irrlicht, the generator does not depend on D3D, D3DX or OpenGL. 3966 in Irrlicht, the generator does not depend on D3D, D3DX or OpenGL.
3967 3967
3968- Added shader debugging capabilities to Irrlicht. If _IRR_D3D_SHADER_DEBUGGING is 3968- Added shader debugging capabilities to Irrlicht. If _IRR_D3D_SHADER_DEBUGGING is
3969 defined in IrrCompileConfig.h (commented out by default), it is now possible to 3969 defined in IrrCompileConfig.h (commented out by default), it is now possible to
3970 debug all D3D9 shaders in VisualStudio. All shaders (which have been generated in memory 3970 debug all D3D9 shaders in VisualStudio. All shaders (which have been generated in memory
3971 or read from archives for example) will be emitted into a temporary file for this purpose. 3971 or read from archives for example) will be emitted into a temporary file for this purpose.
3972 To debug your shaders, choose Debug->Direct3D->StartWithDirect3DDebugging in Visual Studio, 3972 To debug your shaders, choose Debug->Direct3D->StartWithDirect3DDebugging in Visual Studio,
3973 and for every shader a file named 'irr_dbg_shader_%%.vsh' or 'irr_dbg_shader_%%.psh' 3973 and for every shader a file named 'irr_dbg_shader_%%.vsh' or 'irr_dbg_shader_%%.psh'
3974 will be created. Drag'n'drop the file you want to debug into visual studio. That's it. 3974 will be created. Drag'n'drop the file you want to debug into visual studio. That's it.
3975 You can now set breakpoints and watch registers etc. This works both with ASM, HLSL, 3975 You can now set breakpoints and watch registers etc. This works both with ASM, HLSL,
3976 pixel and vertex shaders. 3976 pixel and vertex shaders.
3977 Note that the engine will run in D3D REF for this, which is a lot slower than HAL. 3977 Note that the engine will run in D3D REF for this, which is a lot slower than HAL.
3978 3978
3979- Support for compressed .tga texture loading added. (Support from 0.4.1 was buggy) 3979- Support for compressed .tga texture loading added. (Support from 0.4.1 was buggy)
3980 Thanks to neojzs for posting his improvement. 3980 Thanks to neojzs for posting his improvement.
3981 3981
3982- Support for 32 bit .bmp texture loading added. 3982- Support for 32 bit .bmp texture loading added.
3983 3983
3984- Global particles are now possible. Use IParticleSystem::setParticlesAreGlobal() 3984- Global particles are now possible. Use IParticleSystem::setParticlesAreGlobal()
3985 to switch between global and local particles. A demonstration of this can be seen in the 3985 to switch between global and local particles. A demonstration of this can be seen in the
3986 new tutorial (11.SpecialFX2). 3986 new tutorial (11.SpecialFX2).
3987 3987
3988- It is now possible to let IGUIImages draw themselves using the alpha channel of the texture 3988- It is now possible to let IGUIImages draw themselves using the alpha channel of the texture
3989 they show. Use IGUIImage::setUseAlphaChannel() for this. 3989 they show. Use IGUIImage::setUseAlphaChannel() for this.
3990 3990
3991- ITexture now has a method for rebuilding the mip map levels: regenerateMipMapLevels(). 3991- ITexture now has a method for rebuilding the mip map levels: regenerateMipMapLevels().
3992 This is useful for example after locking and modifying the texture. 3992 This is useful for example after locking and modifying the texture.
3993 3993
3994- Gravity acceleration speed in CollisionResponseAnimator was changed thanks to a suggestion 3994- Gravity acceleration speed in CollisionResponseAnimator was changed thanks to a suggestion
3995 by Morrog. The accelerationPerSecond value has been removed beacause of this, you 3995 by Morrog. The accelerationPerSecond value has been removed beacause of this, you
3996 can now control everything just with the gravity vector. Note that the gravity value 3996 can now control everything just with the gravity vector. Note that the gravity value
3997 must now be a little bit smaller to achieve the same effect as before. 3997 must now be a little bit smaller to achieve the same effect as before.
3998 3998
3999- Fixed a problem with several material renderers which weren't able to update their states 3999- Fixed a problem with several material renderers which weren't able to update their states
4000 at the right time sometimes. A new method OnRender() will be called every time the 4000 at the right time sometimes. A new method OnRender() will be called every time the
4001 material is actually used. 4001 material is actually used.
4002 4002
4003- Adjusted all tutorials to fit some interface changes. 4003- Adjusted all tutorials to fit some interface changes.
4004 4004
4005- Changed the opengl shader of tutorial 10 to fit the d3d shaders. The now look the same. 4005- Changed the opengl shader of tutorial 10 to fit the d3d shaders. The now look the same.
4006 4006
4007- The MeshManipulator has a new method createMeshWithTangents() which creates a mesh 4007- The MeshManipulator has a new method createMeshWithTangents() which creates a mesh
4008 with normals, tangents and binormals from any mesh. 4008 with normals, tangents and binormals from any mesh.
4009 4009
4010- Wrong 2D alpha channel renderstates have been set when using D3D9 and 8. This has been fixed now. 4010- Wrong 2D alpha channel renderstates have been set when using D3D9 and 8. This has been fixed now.
4011 4011
4012- When loading 32 bit images with an alpha channel and storing them internally as 16 bit, the 4012- When loading 32 bit images with an alpha channel and storing them internally as 16 bit, the
4013 alpha channel got lost. This is now fixed, the remaining one bit alpha channel is now 4013 alpha channel got lost. This is now fixed, the remaining one bit alpha channel is now
4014 stored correctly. 4014 stored correctly.
4015 4015
4016- There is a new overloaded IGUIEnvironment::addImage method, which creates an image directly with 4016- There is a new overloaded IGUIEnvironment::addImage method, which creates an image directly with
4017 a texture as parameter, adjusting its size to the original size of the texture. 4017 a texture as parameter, adjusting its size to the original size of the texture.
4018 4018
4019- A small bug in rect<T>::isValid() has been fixed, thanks to jox. 4019- A small bug in rect<T>::isValid() has been fixed, thanks to jox.
4020 4020
4021- Fixed a bug in D3D8, D3D9 and OpenGL, which caused Materials be set and unset with an unequal 4021- Fixed a bug in D3D8, D3D9 and OpenGL, which caused Materials be set and unset with an unequal
4022 amount when mixing 3d with 2d grafics or stencil buffer shadows. 4022 amount when mixing 3d with 2d grafics or stencil buffer shadows.
4023 4023
4024- If you are recompiling the whole engine with Visual Studio 6 (which means 4024- If you are recompiling the whole engine with Visual Studio 6 (which means
4025 Irrlicht.dll, NOT the application which is using Irrlicht), DirectX9 support is disabled 4025 Irrlicht.dll, NOT the application which is using Irrlicht), DirectX9 support is disabled
4026 now by default, because Microsoft stopped support for DX9 on VS6 in December 4026 now by default, because Microsoft stopped support for DX9 on VS6 in December
4027 2004. You can reenable this by uncommenting the new define at the bottom of 4027 2004. You can reenable this by uncommenting the new define at the bottom of
4028 IrrCompileConfig.h, if you have an old SDK for example. 4028 IrrCompileConfig.h, if you have an old SDK for example.
4029 4029
4030- The mixed fvf and vertex shader system in D3D8 caused a slight issue in Irrlicht ending up 4030- The mixed fvf and vertex shader system in D3D8 caused a slight issue in Irrlicht ending up
4031 in really messed up render states sometimes. This is now fixed. 4031 in really messed up render states sometimes. This is now fixed.
4032 4032
4033- A major bug with the OpenGL renderer which occured on some OpenGL implementations 4033- A major bug with the OpenGL renderer which occured on some OpenGL implementations
4034 has been removed thanks to a bugfix by Murphy and a great report and some investigations 4034 has been removed thanks to a bugfix by Murphy and a great report and some investigations
4035 by ElectroDruid. 4035 by ElectroDruid.
4036 4036
4037- Sorting transparent scene nodes was broken in all previous versions of Irrlicht. This 4037- Sorting transparent scene nodes was broken in all previous versions of Irrlicht. This
4038 didn't attract a lot attention because most users used the ADD_COLOR transparencies for which 4038 didn't attract a lot attention because most users used the ADD_COLOR transparencies for which
4039 the sorting is not relevant. Thanks to Morrog and mmm76, sorting now is right. 4039 the sorting is not relevant. Thanks to Morrog and mmm76, sorting now is right.
4040- After the application window is resized, getViewport() no longer returns viewport as the 4040- After the application window is resized, getViewport() no longer returns viewport as the
4041 first time the window has been created. 4041 first time the window has been created.
4042 4042
4043- The draw primitive functions are no longer wrongly checking the maximum primitive count with 4043- The draw primitive functions are no longer wrongly checking the maximum primitive count with
4044 the vertex amount value. Thanks to Spintz for the bug report. 4044 the vertex amount value. Thanks to Spintz for the bug report.
4045 4045
4046- Template materials in X files just like exported in the panda exporter are now 4046- Template materials in X files just like exported in the panda exporter are now
4047 supported, thanks to JoeWright. 4047 supported, thanks to JoeWright.
4048 4048
4049- Changed the stringc typedef slightly to make it work with people not using 4049- Changed the stringc typedef slightly to make it work with people not using
4050 namespace irr. Thanks to schick. 4050 namespace irr. Thanks to schick.
4051 4051
4052- Refactored the MeshManipulator code, which in some cases now uses template methods for performing 4052- Refactored the MeshManipulator code, which in some cases now uses template methods for performing
4053 calculations on different vertex types. 4053 calculations on different vertex types.
4054 4054
4055- Fixed an interface problem with newer versions of libJPEG. 4055- Fixed an interface problem with newer versions of libJPEG.
4056 Thanks to Fabien Coutant and Simon Barner for some help and clues into the right direction. 4056 Thanks to Fabien Coutant and Simon Barner for some help and clues into the right direction.
4057 Was not able to add system specific zlib/jpeglib support due to issues on 4057 Was not able to add system specific zlib/jpeglib support due to issues on
4058 some strange systems/users and a lack of time, sorry. 4058 some strange systems/users and a lack of time, sorry.
4059 4059
4060- Typo in plane3d and triangle3d: method isFrontFacting renamed to isFrontFacing. 4060- Typo in plane3d and triangle3d: method isFrontFacting renamed to isFrontFacing.
4061 4061
4062------------------------------------------------------------------------------------- 4062-------------------------------------------------------------------------------------
4063Changes in version 0.7.1: (26 Sep 2004) 4063Changes in version 0.7.1: (26 Sep 2004)
4064 4064
4065- Fixed some bugs which prevented the engine to compile with gcc 3.4.1. 4065- Fixed some bugs which prevented the engine to compile with gcc 3.4.1.
4066 4066
4067- Fixed a problem with the OpenGL driver, which caused the renderstates not to be reset correctly 4067- Fixed a problem with the OpenGL driver, which caused the renderstates not to be reset correctly
4068 when drawing scene nodes with reflective materials. 4068 when drawing scene nodes with reflective materials.
4069 4069
4070- Fixed error in Irrlicht's software mip map generation, which caused that some mipmap levels 4070- Fixed error in Irrlicht's software mip map generation, which caused that some mipmap levels
4071 looked strange. This fix was found by jox, the hardcore bug fixer, 4071 looked strange. This fix was found by jox, the hardcore bug fixer,
4072 so many thanks go to him. Again. :) 4072 so many thanks go to him. Again. :)
4073 4073
4074- Disabled hardware mip map generation in D3D9 again, because it seems to cause problems on 4074- Disabled hardware mip map generation in D3D9 again, because it seems to cause problems on
4075 some hardware. I don't have any hardware where this problem occurs, but I hope this helps. 4075 some hardware. I don't have any hardware where this problem occurs, but I hope this helps.
4076 4076
4077- Fixed a small bug in fast_atof submitted in the forum by da_dude. 4077- Fixed a small bug in fast_atof submitted in the forum by da_dude.
4078 4078
4079- Fixed string operator + after a bug report by osre and a fix suggestion by jox. 4079- Fixed string operator + after a bug report by osre and a fix suggestion by jox.
4080 4080
4081- IEventReceiver now has a virtual destructor for the people who needed it. 4081- IEventReceiver now has a virtual destructor for the people who needed it.
4082 4082
4083- 3DS-Loader patched due to some suggestions of Daniel Azkona Coya. 4083- 3DS-Loader patched due to some suggestions of Daniel Azkona Coya.
4084 4084
4085------------------------------------------------------------------------------------- 4085-------------------------------------------------------------------------------------
4086Changes in version 0.7: (11 Sep 2004) 4086Changes in version 0.7: (11 Sep 2004)
4087 4087
4088- The first version of Irrlicht.NET is included in this release. It is a managed C++ 4088- The first version of Irrlicht.NET is included in this release. It is a managed C++
4089 wrapper .DLL which makes the most important features of the engine available for all 4089 wrapper .DLL which makes the most important features of the engine available for all
4090 .NET languages. The wrapper is incomplete, but it can already be used. 4090 .NET languages. The wrapper is incomplete, but it can already be used.
4091 You can find the documentation for this .DLL in the compiled help file doc\IrrlichtNET.chm. 4091 You can find the documentation for this .DLL in the compiled help file doc\IrrlichtNET.chm.
4092 There are also two very basic examples available, which show how to use Irrlicht.NET 4092 There are also two very basic examples available, which show how to use Irrlicht.NET
4093 from C# and VisualBasic. 4093 from C# and VisualBasic.
4094 4094
4095- Low level vertex and pixel shader programming is now possible. There are 4095- Low level vertex and pixel shader programming is now possible. There are
4096 now some methods with wich you can write GPU programs in vertex/pixel shader assembler 4096 now some methods with wich you can write GPU programs in vertex/pixel shader assembler
4097 using Direct3D 8 and 9 and in ARB vertex and fragment program assembler for OpenGL. 4097 using Direct3D 8 and 9 and in ARB vertex and fragment program assembler for OpenGL.
4098 You can use the IGPUProgrammingServices interface which can be reached by 4098 You can use the IGPUProgrammingServices interface which can be reached by
4099 IVideoDriver->getGPUProgrammingServices() for this. The new material types you can create 4099 IVideoDriver->getGPUProgrammingServices() for this. The new material types you can create
4100 with this can be combined with all other already existing material types. 4100 with this can be combined with all other already existing material types.
4101 For example, it is possible to create a new material which uses a vertex shader to 4101 For example, it is possible to create a new material which uses a vertex shader to
4102 calculate texture coordinates and diffuse colors, and let this be rendered by the built in 4102 calculate texture coordinates and diffuse colors, and let this be rendered by the built in
4103 material video::EMT_TRANSPARENT_ADD_COLOR. 4103 material video::EMT_TRANSPARENT_ADD_COLOR.
4104 Support for high level programming languages like GLSL or HLSL is planned for the 4104 Support for high level programming languages like GLSL or HLSL is planned for the
4105 following releases. Also note that you won't be able to use all techniques shaders offer with 4105 following releases. Also note that you won't be able to use all techniques shaders offer with
4106 Irrlicht, due to its current high level abstraction of the 3D APIs. For example, the engine 4106 Irrlicht, due to its current high level abstraction of the 3D APIs. For example, the engine
4107 does not expose vertex streams or vertex buffers currently. 4107 does not expose vertex streams or vertex buffers currently.
4108 4108
4109- There is a new tutorial showing how to use shaders with the engine. In addition, all 4109- There is a new tutorial showing how to use shaders with the engine. In addition, all
4110 old tutorials have been rewritten and adapted. For example, the hello world 4110 old tutorials have been rewritten and adapted. For example, the hello world
4111 tutorial now also shows how to set up visual studio .NET to use it with 4111 tutorial now also shows how to set up visual studio .NET to use it with
4112 the engine. 4112 the engine.
4113 4113
4114- Hardware mip map level generation of textures is now supported when using D3D9. 4114- Hardware mip map level generation of textures is now supported when using D3D9.
4115 4115
4116- Internal pointers and data of the video drivers can now be exposed for experienced users with 4116- Internal pointers and data of the video drivers can now be exposed for experienced users with
4117 VideoDriver::getExposedVideoData(). For example, you can get a pointer to the IDirect3DDevice9 4117 VideoDriver::getExposedVideoData(). For example, you can get a pointer to the IDirect3DDevice9
4118 interface and the HWND window handle, if the engine is running with D3D9. 4118 interface and the HWND window handle, if the engine is running with D3D9.
4119 4119
4120- The createDevice() function has a new additional parameter: bool vsync. With this, it is now 4120- The createDevice() function has a new additional parameter: bool vsync. With this, it is now
4121 possible to enable or disable the waiting for the vertical retrace period. This is implemented 4121 possible to enable or disable the waiting for the vertical retrace period. This is implemented
4122 in D3D9, D3D8, and the Windows OpenGL driver only, the software driver will ignore this flag. 4122 in D3D9, D3D8, and the Windows OpenGL driver only, the software driver will ignore this flag.
4123 4123
4124- The engine now behaves like in the documentation: irr::createDevice() returns 0, if 4124- The engine now behaves like in the documentation: irr::createDevice() returns 0, if
4125 the desired driver could not be initialized. 4125 the desired driver could not be initialized.
4126 4126
4127- There is a new SceneNode available: The ITextSceneNode is able to display 2D text at a 4127- There is a new SceneNode available: The ITextSceneNode is able to display 2D text at a
4128 position in 3D space. Use ISceneManager::addTextSceneNode() to create one. 4128 position in 3D space. Use ISceneManager::addTextSceneNode() to create one.
4129 4129
4130- Finally now all VideoDrivers have a draw2DLine() implementation, thanks to some additions sent in 4130- Finally now all VideoDrivers have a draw2DLine() implementation, thanks to some additions sent in
4131 by Vash TheStampede. 4131 by Vash TheStampede.
4132 4132
4133- Applied some changes to the compilation configuration, so that it should now 4133- Applied some changes to the compilation configuration, so that it should now
4134 be easier to use the engine with XBOX projects. Thanks to MattyBoy for sending 4134 be easier to use the engine with XBOX projects. Thanks to MattyBoy for sending
4135 in some clues for this. 4135 in some clues for this.
4136 4136
4137- Some improvements for the linux version of the engine: The NULL device is finally fully operational with Linux 4137- Some improvements for the linux version of the engine: The NULL device is finally fully operational with Linux
4138 too, and also all examples and even the techdemo compile and run with this OS. 4138 too, and also all examples and even the techdemo compile and run with this OS.
4139 4139
4140- The default field of view in the cameras of the irrlicht engine was a little bit 4140- The default field of view in the cameras of the irrlicht engine was a little bit
4141 extreme, so I changed it now from core::PI / 3.5f to core::PI / 2.5f. 4141 extreme, so I changed it now from core::PI / 3.5f to core::PI / 2.5f.
4142 4142
4143- Added a new draw2DImage method for partially draw a 2d Texture, as sent in by zola with 4143- Added a new draw2DImage method for partially draw a 2d Texture, as sent in by zola with
4144 implementations for OpenGL, D3D8 and D3D9. Software implementation is missing. 4144 implementations for OpenGL, D3D8 and D3D9. Software implementation is missing.
4145 4145
4146- The string class is now able to convert integer values into a string or append it as string 4146- The string class is now able to convert integer values into a string or append it as string
4147 to itself. 4147 to itself.
4148 4148
4149- Added a getDriverType() method to the IVideoDriver interface. 4149- Added a getDriverType() method to the IVideoDriver interface.
4150 4150
4151- Added a getTransform() method to the IVideoDriver interface. 4151- Added a getTransform() method to the IVideoDriver interface.
4152 4152
4153- The EMT_TRANSPARENT_ALPHA_CHANNEL material in OpenGL is now implemented. 4153- The EMT_TRANSPARENT_ALPHA_CHANNEL material in OpenGL is now implemented.
4154 4154
4155- The integrated XML Parser now works better with different text file formats. (ASCII, UFT-16,..) 4155- The integrated XML Parser now works better with different text file formats. (ASCII, UFT-16,..)
4156 4156
4157- IGUIEdit Box now feels more like a windows editbox, thanks to some changes by Jox 4157- IGUIEdit Box now feels more like a windows editbox, thanks to some changes by Jox
4158 4158
4159- Added a new method to IVideoDriver: createImageFromData as suggested by Oliver Klems. 4159- Added a new method to IVideoDriver: createImageFromData as suggested by Oliver Klems.
4160 4160
4161- Fixed a the EMT_TRANSPARENT_ALPHA_CHANNEL problem in D3D8 and D3D9 due to a suggestion by Jox. 4161- Fixed a the EMT_TRANSPARENT_ALPHA_CHANNEL problem in D3D8 and D3D9 due to a suggestion by Jox.
4162 4162
4163- Added 3 methods created by zola to the quaternion class: fromAngleAxis(), toEuler() and 4163- Added 3 methods created by zola to the quaternion class: fromAngleAxis(), toEuler() and
4164 operator*(vector3df&). 4164 operator*(vector3df&).
4165 4165
4166- A bug in a matrix multiplication operator was fixed. 4166- A bug in a matrix multiplication operator was fixed.
4167 4167
4168- Changed visual studio project files to version 7.1, but provided 7.0 project files 4168- Changed visual studio project files to version 7.1, but provided 7.0 project files
4169 for people with that version. 4169 for people with that version.
4170 4170
4171- Added SceneNodeAnimatorRotation rotation fix as posted by warui 4171- Added SceneNodeAnimatorRotation rotation fix as posted by warui
4172 4172
4173- Added normalization fix to vector2d and 3d. Warui suggested a fix like that in the forum. 4173- Added normalization fix to vector2d and 3d. Warui suggested a fix like that in the forum.
4174 The one I made has the same result, but is a little bit faster. 4174 The one I made has the same result, but is a little bit faster.
4175 4175
4176- Fixed some problems with the drawStencilShadow() method in the OpenGL implementation of the 4176- Fixed some problems with the drawStencilShadow() method in the OpenGL implementation of the
4177 IVideoDriver interface after some suggestions by Nicholas Bray. 4177 IVideoDriver interface after some suggestions by Nicholas Bray.
4178 4178
4179- Added IGUIButton::setPressed() and isPressed(). 4179- Added IGUIButton::setPressed() and isPressed().
4180 4180
4181- Fixed checkPrimitiveCount() bug in NullDevice. 4181- Fixed checkPrimitiveCount() bug in NullDevice.
4182 4182
4183- Applied jox's matrix4::getRotationDegrees() fix, many thanks for posting this! 4183- Applied jox's matrix4::getRotationDegrees() fix, many thanks for posting this!
4184 4184
4185- Changed aabbox3d::getExtend() to getExtent(). 4185- Changed aabbox3d::getExtend() to getExtent().
4186 4186
4187- Changed IXMLReader::isEmtpyElement() to isEmptyElement() 4187- Changed IXMLReader::isEmtpyElement() to isEmptyElement()
4188 4188
4189- Fixed a bug in CSceneManager::getSceneNodeFromId() which caused the engine to crash sometimes. 4189- Fixed a bug in CSceneManager::getSceneNodeFromId() which caused the engine to crash sometimes.
4190 4190
4191- Fixed a bug in CGUISkin::setSize reported by REAPER. This method never worked before. 4191- Fixed a bug in CGUISkin::setSize reported by REAPER. This method never worked before.
4192 4192
4193- Improved texture mapping and normals of the TestSceneNode, thanks go again to Jox. 4193- Improved texture mapping and normals of the TestSceneNode, thanks go again to Jox.
4194 4194
4195- ScrollBar is now posting mousewheel events, thanks go to REAPER to post this bug and a fix for it. 4195- ScrollBar is now posting mousewheel events, thanks go to REAPER to post this bug and a fix for it.
4196 4196
4197- Added - operator to vector2d and vector3d, thanks to calimero 4197- Added - operator to vector2d and vector3d, thanks to calimero
4198 4198
4199- Fixed a bug in vector2d::getAngle() and vector2d::rotateBy() thanks to Jox. 4199- Fixed a bug in vector2d::getAngle() and vector2d::rotateBy() thanks to Jox.
4200 4200
4201- Fixed a bug in quaternion::set(f32 x, f32 y, f32 z) thanks again to Jox. 4201- Fixed a bug in quaternion::set(f32 x, f32 y, f32 z) thanks again to Jox.
4202 4202
4203- Fixed a bug in list::insert_before and list::insert_after, reported by Haddock. 4203- Fixed a bug in list::insert_before and list::insert_after, reported by Haddock.
4204 4204
4205- Fixed a bug in XML Parser which caused a seqfault on linux. Thanks for G.o.D reporting this problem. 4205- Fixed a bug in XML Parser which caused a seqfault on linux. Thanks for G.o.D reporting this problem.
4206 4206
4207- EDriverType enumeration renamed to E_DRIVER_TYPE 4207- EDriverType enumeration renamed to E_DRIVER_TYPE
4208 4208
4209- SceneNodeRenderTime enumeration renamed to E_SCENE_NODE_RENDER_PASS 4209- SceneNodeRenderTime enumeration renamed to E_SCENE_NODE_RENDER_PASS
4210 4210
4211------------------------------------------------------------------------------------- 4211-------------------------------------------------------------------------------------
4212Changes in version 0.6: (09 Mar 2004) 4212Changes in version 0.6: (09 Mar 2004)
4213 4213
4214- Irrlicht now includes its own XML parser. It provides forward-only, read-only 4214- Irrlicht now includes its own XML parser. It provides forward-only, read-only
4215 access to a stream of non validated XML data. It can read everywhere Irrlicht can, 4215 access to a stream of non validated XML data. It can read everywhere Irrlicht can,
4216 also in compressed .zip-Files for example. Use IFileSystem::createXMLReader() to 4216 also in compressed .zip-Files for example. Use IFileSystem::createXMLReader() to
4217 use it. 4217 use it.
4218 4218
4219- Like the new XMLReader, there is also a IXMLWriter available for making it easier 4219- Like the new XMLReader, there is also a IXMLWriter available for making it easier
4220 to write xml files. 4220 to write xml files.
4221 4221
4222- There is a new tutorial available in the SDK. It is for more advanced users, and 4222- There is a new tutorial available in the SDK. It is for more advanced users, and
4223 shows how to create a 3d model viewer with the engine easily. It shows how to 4223 shows how to create a 3d model viewer with the engine easily. It shows how to
4224 use menus, tabcontrols, edit-, message- and sky boxes. 4224 use menus, tabcontrols, edit-, message- and sky boxes.
4225 The resulting program can also be used as tool, to check if the engine 4225 The resulting program can also be used as tool, to check if the engine
4226 loads exported 3d models correctly. 4226 loads exported 3d models correctly.
4227 4227
4228- Again, there are some new GUI widgets available: A ComboBox, a ToolBar, a PushButton 4228- Again, there are some new GUI widgets available: A ComboBox, a ToolBar, a PushButton
4229 and an ImageButton. The last two are simply the old IGUIButton, but it is now able 4229 and an ImageButton. The last two are simply the old IGUIButton, but it is now able
4230 to display additional images and behave like a PushButton. 4230 to display additional images and behave like a PushButton.
4231 4231
4232- It is now possible to make the drawing window resizeable, if it is in windowed mode. 4232- It is now possible to make the drawing window resizeable, if it is in windowed mode.
4233 Use IVideoDriver::setResizeAble(true) to do this. 4233 Use IVideoDriver::setResizeAble(true) to do this.
4234 4234
4235- The .x file reader and animation player now should work with 99% of all text .x files. 4235- The .x file reader and animation player now should work with 99% of all text .x files.
4236 This is achieved by most of the following bug fixes. 4236 This is achieved by most of the following bug fixes.
4237 4237
4238- Fixed a huge bug in the .x file reader, which caused that negative coordinates were 4238- Fixed a huge bug in the .x file reader, which caused that negative coordinates were
4239 interpreted as positive ones sometimes. This caused that sometimes .x animations 4239 interpreted as positive ones sometimes. This caused that sometimes .x animations
4240 were played wrong. 4240 were played wrong.
4241 4241
4242- Slerp interpolation of the quaternion class fixed. This means that also some bugs 4242- Slerp interpolation of the quaternion class fixed. This means that also some bugs
4243 in the animation of .x files are removed now. 4243 in the animation of .x files are removed now.
4244 4244
4245- Added virtual joints to not weighted vertices to improve .x file animations. 4245- Added virtual joints to not weighted vertices to improve .x file animations.
4246 4246
4247- The FileSystem is now 100% implemented. Finally it is now possible to write files 4247- The FileSystem is now 100% implemented. Finally it is now possible to write files
4248 too. There is a new Class IWriteFile and the corresponding 4248 too. There is a new Class IWriteFile and the corresponding
4249 IFileSystem::createAndWriteFile() 4249 IFileSystem::createAndWriteFile()
4250 4250
4251- Added lots of text and sample code to the documentation. In most parts 4251- Added lots of text and sample code to the documentation. In most parts
4252 documentation should be clearer now. 4252 documentation should be clearer now.
4253 4253
4254- The ISceneManager has a clear() method, which clears the whole scene, all scene nodes 4254- The ISceneManager has a clear() method, which clears the whole scene, all scene nodes
4255 are removed. 4255 are removed.
4256 4256
4257- All ISceneNodes now own a new method called removeAll(), which deletes all children 4257- All ISceneNodes now own a new method called removeAll(), which deletes all children
4258 of the node. 4258 of the node.
4259 4259
4260- Fixed a bug which prevented the possibility to compile directx8 without 4260- Fixed a bug which prevented the possibility to compile directx8 without
4261 having installed directx9. 4261 having installed directx9.
4262 4262
4263- Fixed a bug in 3d line dawing in D3D 8 and 9. 4263- Fixed a bug in 3d line dawing in D3D 8 and 9.
4264 4264
4265- All video drivers now print out the gfx adapter type, vendor and driver version 4265- All video drivers now print out the gfx adapter type, vendor and driver version
4266 into the log strings. 4266 into the log strings.
4267 4267
4268- The D3D9 device is now as fast as the D3D8 device. 4268- The D3D9 device is now as fast as the D3D8 device.
4269 4269
4270- The string class has an additional new constructor for creating a string from 4270- The string class has an additional new constructor for creating a string from
4271 character data with a specific length. 4271 character data with a specific length.
4272 4272
4273- Bug fixed in string class assignment operator which might cause a crash in very 4273- Bug fixed in string class assignment operator which might cause a crash in very
4274 special circumstances. 4274 special circumstances.
4275 4275
4276- Added a findNext() method to the string class. 4276- Added a findNext() method to the string class.
4277 4277
4278- The ISceneNode class now has a isDebugDataVisible() method. 4278- The ISceneNode class now has a isDebugDataVisible() method.
4279 4279
4280- Some lines were changed to make the source of the engine compatible to VS.NET 2003. 4280- Some lines were changed to make the source of the engine compatible to VS.NET 2003.
4281 4281
4282- Some functionality of the IFileList and IFileSystem was missing in the Linux version 4282- Some functionality of the IFileList and IFileSystem was missing in the Linux version
4283 of the engine. This caused the FileOpen-Dialog not to work. I fixed this problem. 4283 of the engine. This caused the FileOpen-Dialog not to work. I fixed this problem.
4284 4284
4285- The Middle and Right mouse button were swapped in the Linux version. This is now 4285- The Middle and Right mouse button were swapped in the Linux version. This is now
4286 fixed. 4286 fixed.
4287 4287
4288- Multitexturing should now work with most linux systems too, thanks to a bug 4288- Multitexturing should now work with most linux systems too, thanks to a bug
4289 report by Martin Piskernig. 4289 report by Martin Piskernig.
4290 4290
4291- The logger now has an additional log() method which accepts another combination 4291- The logger now has an additional log() method which accepts another combination
4292 of strings. 4292 of strings.
4293 4293
4294- Fixed a bug which caused fonts to be displayed very transparent in OpenGL. 4294- Fixed a bug which caused fonts to be displayed very transparent in OpenGL.
4295 4295
4296- Removed one of the redundant overloaded IGUIEnvironment::updateAbsolutePosition() 4296- Removed one of the redundant overloaded IGUIEnvironment::updateAbsolutePosition()
4297 methods. 4297 methods.
4298 4298
4299- Fixed lots of clipping problems in all GUI Widgets. 4299- Fixed lots of clipping problems in all GUI Widgets.
4300 4300
4301- core::rect has the new methods getCenter() and isValid(). 4301- core::rect has the new methods getCenter() and isValid().
4302 4302
4303- Scrollbar buttons are now disabled if it is not possible to scroll. 4303- Scrollbar buttons are now disabled if it is not possible to scroll.
4304 4304
4305------------------------------------------------------------------------------------- 4305-------------------------------------------------------------------------------------
4306Changes in version 0.5: (17 Feb 2004) 4306Changes in version 0.5: (17 Feb 2004)
4307 4307
4308------------------------------------- 4308-------------------------------------
4309/ Highlights in short: 4309/ Highlights in short:
4310/ * DirectX 9 support 4310/ * DirectX 9 support
4311/ * .x file support in all render devices including opengl and software 4311/ * .x file support in all render devices including opengl and software
4312/ * new materials like lightmaps with dynamic lighting 4312/ * new materials like lightmaps with dynamic lighting
4313/ * fog 4313/ * fog
4314/ * stencil buffer shadows now also work in OpenGL device 4314/ * stencil buffer shadows now also work in OpenGL device
4315/ * more gui widgets: tab controls, edit boxes, menus 4315/ * more gui widgets: tab controls, edit boxes, menus
4316/ * spline animation support 4316/ * spline animation support
4317/ * mouse wheel support 4317/ * mouse wheel support
4318/ * triangle fan drawing 4318/ * triangle fan drawing
4319/ * quaternions 4319/ * quaternions
4320/ * improved keyboard input control 4320/ * improved keyboard input control
4321/ * lots of bugfixes including improved quake 3 map support 4321/ * lots of bugfixes including improved quake 3 map support
4322------------------------------------- 4322-------------------------------------
4323 4323
4324- DirectX 9 is now supported by Irrlicht. This does not mean that it replaces 4324- DirectX 9 is now supported by Irrlicht. This does not mean that it replaces
4325 DirectX 8. The engine now supports both. You can now select between OpenGL, 4325 DirectX 8. The engine now supports both. You can now select between OpenGL,
4326 DirectX8, DirectX9, Software and the Null device. 4326 DirectX8, DirectX9, Software and the Null device.
4327 4327
4328- The engine now is able to read and display .x files. Using 4328- The engine now is able to read and display .x files. Using
4329 Microsoft's excellent .x file exporter for Maya or MAX which comes 4329 Microsoft's excellent .x file exporter for Maya or MAX which comes
4330 with the DX8 and DX9 SDK, it is now possible to create content for 4330 with the DX8 and DX9 SDK, it is now possible to create content for
4331 the engine easily. Using .X files with Irrlicht is independent of D3D, 4331 the engine easily. Using .X files with Irrlicht is independent of D3D,
4332 they can be used with OpenGL and with Linux for example too. 4332 they can be used with OpenGL and with Linux for example too.
4333 Currently only text file .x files are supported, and some animated .x 4333 Currently only text file .x files are supported, and some animated .x
4334 files may be displayed not 100% correctly, because the animation player 4334 files may be displayed not 100% correctly, because the animation player
4335 may still have some small bugs. It works perfectly with most .x files which 4335 may still have some small bugs. It works perfectly with most .x files which
4336 come with the DX9-SDK. Some skinned mesh .x files which use 4336 come with the DX9-SDK. Some skinned mesh .x files which use
4337 quaternions for animating joints have some problems, there might be a 4337 quaternions for animating joints have some problems, there might be a
4338 bug somewhere. I commented the lines with a possible bug in CXAnimationPlayer.cpp. 4338 bug somewhere. I commented the lines with a possible bug in CXAnimationPlayer.cpp.
4339 4339
4340- The GUI Environment now supports edit boxes. They should support unicode input 4340- The GUI Environment now supports edit boxes. They should support unicode input
4341 from every keyboard around the world, scrolling, copying and pasting (exchanging 4341 from every keyboard around the world, scrolling, copying and pasting (exchanging
4342 data with the clipboard directly), maximum character amount, marking and all 4342 data with the clipboard directly), maximum character amount, marking and all
4343 shortcuts like ctrl+X, ctrl+V, ctrg+C, shift+Left, shift+Right, Home, End, 4343 shortcuts like ctrl+X, ctrl+V, ctrg+C, shift+Left, shift+Right, Home, End,
4344 and so on. Wow, I never programmed an edit box, its much more work than it 4344 and so on. Wow, I never programmed an edit box, its much more work than it
4345 seems to be. 4345 seems to be.
4346 4346
4347- Tabcontrols are now available in the GUI environment. It is also 4347- Tabcontrols are now available in the GUI environment. It is also
4348 possible to create tabs without tabcontrols, to be able to create 4348 possible to create tabs without tabcontrols, to be able to create
4349 invisible gui elements for grouping other elements together. 4349 invisible gui elements for grouping other elements together.
4350 4350
4351- Another new supported GUI Element are context menus. They support 4351- Another new supported GUI Element are context menus. They support
4352 ordinary text menu items, separators and sub menus. In Addition, 4352 ordinary text menu items, separators and sub menus. In Addition,
4353 a standard menu as seen at the top of most windows can be 4353 a standard menu as seen at the top of most windows can be
4354 created easily with them. 4354 created easily with them.
4355 4355
4356- Rewrote all tutorials to fit the new API. 4356- Rewrote all tutorials to fit the new API.
4357 4357
4358- Spline animations are now supported thanks to a spline scene node animator 4358- Spline animations are now supported thanks to a spline scene node animator
4359 written by Matthias Gall. 4359 written by Matthias Gall.
4360 4360
4361- Taskswitching now works with Direct3D 8 and 9 devices in fullscreen mode. 4361- Taskswitching now works with Direct3D 8 and 9 devices in fullscreen mode.
4362 4362
4363- Added Material types EMT_LIGHTMAP_LIGHTING, EMT_LIGHTMAP_LIGHTING_M2, 4363- Added Material types EMT_LIGHTMAP_LIGHTING, EMT_LIGHTMAP_LIGHTING_M2,
4364 EMT_LIGHTMAP_LIGHTING_M4 and EMT_LIGHTMAP_ADD. 4364 EMT_LIGHTMAP_LIGHTING_M4 and EMT_LIGHTMAP_ADD.
4365 4365
4366- The engine now supports drawing of trianglefans. To do this, use 4366- The engine now supports drawing of trianglefans. To do this, use
4367 IVideoDriver::drawIndexedTriangleFan(). Mario Gruber sent in code for this, 4367 IVideoDriver::drawIndexedTriangleFan(). Mario Gruber sent in code for this,
4368 so lots of thanks go to him! 4368 so lots of thanks go to him!
4369 4369
4370- It is now possible to draw 3d objects with fog. Simply switch on the fog flag 4370- It is now possible to draw 3d objects with fog. Simply switch on the fog flag
4371 in the objects material. To change to way fog is drawn (per pixel/vertex, color, 4371 in the objects material. To change to way fog is drawn (per pixel/vertex, color,
4372 linear/expontential) use IVideoDriver::setFog(); 4372 linear/expontential) use IVideoDriver::setFog();
4373 4373
4374- With IrrlichtDevice::getOSOperator() a pointer to an interface is returned, with 4374- With IrrlichtDevice::getOSOperator() a pointer to an interface is returned, with
4375 wich it is possible to do some operation system specific operations. Currently 4375 wich it is possible to do some operation system specific operations. Currently
4376 there are only 3 methods supported, but more will be added in the future. 4376 there are only 3 methods supported, but more will be added in the future.
4377 4377
4378- Mouse wheel input is now supported. 4378- Mouse wheel input is now supported.
4379 4379
4380- The Key Event structure of SEvent now contains a Char entry, describing the 4380- The Key Event structure of SEvent now contains a Char entry, describing the
4381 corresponding character of the pressed key. Also two bools were added, 4381 corresponding character of the pressed key. Also two bools were added,
4382 specifying if shift or ctrl was pressed too. 4382 specifying if shift or ctrl was pressed too.
4383 4383
4384- The version of the Operating System is now printed out into the log at 4384- The version of the Operating System is now printed out into the log at
4385 startup. 4385 startup.
4386 4386
4387- There is now a non-const getBoundingBox() method in IMeshBuffer and 4387- There is now a non-const getBoundingBox() method in IMeshBuffer and
4388 IMesh available. 4388 IMesh available.
4389 4389
4390- IGUIElement now has a method getElementFromId(), which searches children 4390- IGUIElement now has a method getElementFromId(), which searches children
4391 (and its children if wanted) for an element with a specific id. If you 4391 (and its children if wanted) for an element with a specific id. If you
4392 want to search all items, just do 4392 want to search all items, just do
4393 IGUIEnvironment::getRootGUIElement::getElementFromId(). 4393 IGUIEnvironment::getRootGUIElement::getElementFromId().
4394 4394
4395- ISceneNode::updateAbsolutePosition() is now public 4395- ISceneNode::updateAbsolutePosition() is now public
4396 4396
4397- Small bug fixed in CMeshManipulator::scaleMesh(). 4397- Small bug fixed in CMeshManipulator::scaleMesh().
4398 4398
4399- The engine now supports Quaternions. 4399- The engine now supports Quaternions.
4400 4400
4401- A bug was fixed causing the windows caption not to be displayed in 4401- A bug was fixed causing the windows caption not to be displayed in
4402 Windows 95/98/ME. 4402 Windows 95/98/ME.
4403 4403
4404- IGUIEnvironment::getBuildInFont() was renamed to getBuiltInFont(). 4404- IGUIEnvironment::getBuildInFont() was renamed to getBuiltInFont().
4405 4405
4406- IGUIElement::bringToFront() is able to brint a child to the front. 4406- IGUIElement::bringToFront() is able to brint a child to the front.
4407 Windows for example are now using this new feature. 4407 Windows for example are now using this new feature.
4408 4408
4409- Changed the texture mapping of the test scene node a little bit based on 4409- Changed the texture mapping of the test scene node a little bit based on
4410 code sent in by Dr Andros C Bragianos. 4410 code sent in by Dr Andros C Bragianos.
4411 4411
4412- Added code to fix some bug in some ATI drivers. Thanks to ariaci for posting 4412- Added code to fix some bug in some ATI drivers. Thanks to ariaci for posting
4413 this code. 4413 this code.
4414 4414
4415- Stencil buffer shadows now also work with the OpenGL device, they worked only 4415- Stencil buffer shadows now also work with the OpenGL device, they worked only
4416 in D3D in earlier versions. Lots of thanks go to Philipp Dortmann, who 4416 in D3D in earlier versions. Lots of thanks go to Philipp Dortmann, who
4417 sent in a modification to the opengl driver! 4417 sent in a modification to the opengl driver!
4418 4418
4419- IGUIStaticText::setWordWarp() renamed to setWordWrap(), 4419- IGUIStaticText::setWordWarp() renamed to setWordWrap(),
4420 IGUIStaticText::enableOverrrideColor() renamed to enableOverrideColor() 4420 IGUIStaticText::enableOverrrideColor() renamed to enableOverrideColor()
4421 [thanks to saigumi] 4421 [thanks to saigumi]
4422 4422
4423- A bug was fixed, causing that the window was not able to be closed with Alt+F4 4423- A bug was fixed, causing that the window was not able to be closed with Alt+F4
4424 in Win95/98. 4424 in Win95/98.
4425 4425
4426- Optimized the Octree-Scene node a little bit for getting more rendering speed. 4426- Optimized the Octree-Scene node a little bit for getting more rendering speed.
4427 Culling is now done with the real frustum, not the bounding box around it. 4427 Culling is now done with the real frustum, not the bounding box around it.
4428 Speed increase is about 5%, it's not much but ok. 4428 Speed increase is about 5%, it's not much but ok.
4429 4429
4430- Bug fixed in the Quake 3 .bsp file loader, which caused holes to appear in 4430- Bug fixed in the Quake 3 .bsp file loader, which caused holes to appear in
4431 some maps. 4431 some maps.
4432 4432
4433- Combination of 3D displaying and drawing GUI elements was improved, and the 4433- Combination of 3D displaying and drawing GUI elements was improved, and the
4434 priority of input receiving of 3d cameras and gui elements swapped. 4434 priority of input receiving of 3d cameras and gui elements swapped.
4435 4435
4436- A bug in the static text was fixed, which caused it to draw itself outside 4436- A bug in the static text was fixed, which caused it to draw itself outside
4437 of its clipping rectangle. 4437 of its clipping rectangle.
4438 4438
4439- KeyFocus and MouseFocus methods in GUIEnvironment are now merged into one method. 4439- KeyFocus and MouseFocus methods in GUIEnvironment are now merged into one method.
4440 4440
4441- The Clamptexturecoordinates flag in the material was removed. 4441- The Clamptexturecoordinates flag in the material was removed.
4442 4442
4443- IVideoDriver::draw3DLine in all devices was improved. 4443- IVideoDriver::draw3DLine in all devices was improved.
4444 4444
4445- The devcpp-version of the binary DLL which comes with the SDK is now faster. 4445- The devcpp-version of the binary DLL which comes with the SDK is now faster.
4446 I'll compile this version from now on always with optimization switched on. 4446 I'll compile this version from now on always with optimization switched on.
4447 4447
4448- Other, Minor New/Changed methods in public interfaces: 4448- Other, Minor New/Changed methods in public interfaces:
4449 * buildShadowMatrix in matrix4 4449 * buildShadowMatrix in matrix4
4450 * getRotationDegrees in matrix4 (sent in by Chev) 4450 * getRotationDegrees in matrix4 (sent in by Chev)
4451 * rotateVect in matrix4 4451 * rotateVect in matrix4
4452 * linear_search in array 4452 * linear_search in array
4453 * recalculateBoundingBox in MeshManipulator 4453 * recalculateBoundingBox in MeshManipulator
4454 * ISceneManager::addStaticText() now has a parameter for word wrapping 4454 * ISceneManager::addStaticText() now has a parameter for word wrapping
4455 * getCharacterFromPos() in IGUIFont 4455 * getCharacterFromPos() in IGUIFont
4456 * drawMeshBuffer() in IVideoDriver; 4456 * drawMeshBuffer() in IVideoDriver;
4457 * interpolate() in matrix4 4457 * interpolate() in matrix4
4458 * getLast in array 4458 * getLast in array
4459 4459
4460------------------------------------------------------------------------------------- 4460-------------------------------------------------------------------------------------
4461Changes in version 0.4.2: (13 Dec 2003) 4461Changes in version 0.4.2: (13 Dec 2003)
4462 4462
4463- The engine does no more use only 16 bit textures internaly. Now all 4463- The engine does no more use only 16 bit textures internaly. Now all
4464 other texture formats are supported too. This means higher precision 4464 other texture formats are supported too. This means higher precision
4465 and better quality images. In this context, the ISurface interface has 4465 and better quality images. In this context, the ISurface interface has
4466 been replaced by IImage, and the ISurfaceLoader by IImageLoader. 4466 been replaced by IImage, and the ISurfaceLoader by IImageLoader.
4467 4467
4468- By changing the texture creation mode of the IVideoDriver, it is now 4468- By changing the texture creation mode of the IVideoDriver, it is now
4469 possible to influence how textures are created: You can choose between 4469 possible to influence how textures are created: You can choose between
4470 'optimized for speed', 'optimized for quality' or simply set constant 4470 'optimized for speed', 'optimized for quality' or simply set constant
4471 bit depth like 'always 32 bit'. Also, you can now enable and disable 4471 bit depth like 'always 32 bit'. Also, you can now enable and disable
4472 Mip map generation with these flags. Take a look at 4472 Mip map generation with these flags. Take a look at
4473 IVideoDriver::setTextureCreationFlag() for details. 4473 IVideoDriver::setTextureCreationFlag() for details.
4474 4474
4475- There is now some support for outdoor or terrain rendering available. 4475- There is now some support for outdoor or terrain rendering available.
4476 You can create a static mesh from a heightmap and a texture using 4476 You can create a static mesh from a heightmap and a texture using
4477 ISceneManager::addTerrainMesh(). You can specify a huge texture if you 4477 ISceneManager::addTerrainMesh(). You can specify a huge texture if you
4478 like, even bigger as your hardware allows to render, because the texture 4478 like, even bigger as your hardware allows to render, because the texture
4479 will be splitted up if necessary. 4479 will be splitted up if necessary.
4480 Another possibility for doing terrain rendering is the new Terrain Scene 4480 Another possibility for doing terrain rendering is the new Terrain Scene
4481 node. But it is only in a very early alpha stage, I disabled for example 4481 node. But it is only in a very early alpha stage, I disabled for example
4482 the use of different level of details. 4482 the use of different level of details.
4483 4483
4484- It is now possible to load software images into memory from files on 4484- It is now possible to load software images into memory from files on
4485 disk, without creating a hardware texture. You can do this by calling 4485 disk, without creating a hardware texture. You can do this by calling
4486 IVideoDriver::createImageFromFile(). This is very useful for example 4486 IVideoDriver::createImageFromFile(). This is very useful for example
4487 for loading heighmaps for terrain renderers. 4487 for loading heighmaps for terrain renderers.
4488 4488
4489- The Quake 3 Map Loader now supports curved surfaces, thanks to by Dean P. Macri 4489- The Quake 3 Map Loader now supports curved surfaces, thanks to by Dean P. Macri
4490 who sent in his code. (He also sent in lots of other cool stuff, which I will merge 4490 who sent in his code. (He also sent in lots of other cool stuff, which I will merge
4491 with the code of next releases, lots of thanks to him!) 4491 with the code of next releases, lots of thanks to him!)
4492 4492
4493- It is now possible to control what text is printed out to the console and 4493- It is now possible to control what text is printed out to the console and
4494 the debug window of Visual Studio. By getting a pointer to the ILogger 4494 the debug window of Visual Studio. By getting a pointer to the ILogger
4495 interface, is is possible to adjust if Warning, Error or Informational 4495 interface, is is possible to adjust if Warning, Error or Informational
4496 texts should be printed out. In addition, now every text can be catched 4496 texts should be printed out. In addition, now every text can be catched
4497 by the event receiver. 4497 by the event receiver.
4498 4498
4499- The engine is now capable of loading .PCX files. Only a few PCX formats 4499- The engine is now capable of loading .PCX files. Only a few PCX formats
4500 are supported currently, but at least the common used formats 4500 are supported currently, but at least the common used formats
4501 of most textures of the quake 2 models. Thanks go to Dean P. Macri who 4501 of most textures of the quake 2 models. Thanks go to Dean P. Macri who
4502 sent in the code for the new PCXLoader! 4502 sent in the code for the new PCXLoader!
4503 4503
4504- A new Scene node is available, which simply does nothing. It is useful for doing 4504- A new Scene node is available, which simply does nothing. It is useful for doing
4505 advanced transformations or for structuring the scene graph. 4505 advanced transformations or for structuring the scene graph.
4506 4506
4507- The ISceneManager::addOctTreeSceneNode() now takes AnimatedMeshes as parameter. 4507- The ISceneManager::addOctTreeSceneNode() now takes AnimatedMeshes as parameter.
4508 If this new method is called, the first frame in the animated mesh is taken as 4508 If this new method is called, the first frame in the animated mesh is taken as
4509 mesh to construct the octree. This means that you won't have to write 4509 mesh to construct the octree. This means that you won't have to write
4510 addOctTreeSceneNode(yourMesh->getMesh(0)) anymore, but can use 4510 addOctTreeSceneNode(yourMesh->getMesh(0)) anymore, but can use
4511 addOctTreeSceneNode(yourMesh), which is a little bit more intuitive. 4511 addOctTreeSceneNode(yourMesh), which is a little bit more intuitive.
4512 4512
4513- The Driver type enumeration have been adapted to the Irrlicht 4513- The Driver type enumeration have been adapted to the Irrlicht
4514 naming conventions. For example instead of writing DT_OPENGL, now write 4514 naming conventions. For example instead of writing DT_OPENGL, now write
4515 EDT_OPENGL. 4515 EDT_OPENGL.
4516 4516
4517- The ITexture interface has two new methods for getting the size of the 4517- The ITexture interface has two new methods for getting the size of the
4518 texture: ITexture::getSize() and ITexture::getOriginalSize(). This replaces 4518 texture: ITexture::getSize() and ITexture::getOriginalSize(). This replaces
4519 the old getDimension()-method and allows to disable bugs which are generated 4519 the old getDimension()-method and allows to disable bugs which are generated
4520 by the automatic scaling to optimal sizes of textures. 4520 by the automatic scaling to optimal sizes of textures.
4521 4521
4522- There are some new keycodes available: KEY_COMMA, KEY_PLUS, KEY_MINUS, KEY_PERIOD. 4522- There are some new keycodes available: KEY_COMMA, KEY_PLUS, KEY_MINUS, KEY_PERIOD.
4523 4523
4524- There are now 3 lightmap Material types: EMT_LIGHTMAP, EMT_LIGHTMAP_M2 and 4524- There are now 3 lightmap Material types: EMT_LIGHTMAP, EMT_LIGHTMAP_M2 and
4525 EMT_LIGHTMAP_M4, which are making the lightmaps 2 or 4 times brighter. If you used 4525 EMT_LIGHTMAP_M4, which are making the lightmaps 2 or 4 times brighter. If you used
4526 the Material EMT_LIGHTMAP in your code, you should replace it now with 4526 the Material EMT_LIGHTMAP in your code, you should replace it now with
4527 EMT_LIGHTMAP_M4. 4527 EMT_LIGHTMAP_M4.
4528 4528
4529- The transformation enumeration names have been adapted to the irrlicht 4529- The transformation enumeration names have been adapted to the irrlicht
4530 naming conventions. For example instead of writing TS_VIEW, now write 4530 naming conventions. For example instead of writing TS_VIEW, now write
4531 ETS_VIEW. 4531 ETS_VIEW.
4532 4532
4533- Video driver feature enumeration names have been changed from 4533- Video driver feature enumeration names have been changed from
4534 EK3DVDF_... to EVDF_... 4534 EK3DVDF_... to EVDF_...
4535 4535
4536- The GUIEnvironment now has a new method: getRootGUIElement(). With this it 4536- The GUIEnvironment now has a new method: getRootGUIElement(). With this it
4537 is possible now to add external created custom GUI Elements to the gui environment, 4537 is possible now to add external created custom GUI Elements to the gui environment,
4538 without an existing internal GUI element as parent. 4538 without an existing internal GUI element as parent.
4539 4539
4540- The setViewPort()-Method of the OpenGL-device now works, too. Nothing stands now 4540- The setViewPort()-Method of the OpenGL-device now works, too. Nothing stands now
4541 in the way of creating splitscreen applications using the OpenGL device. 4541 in the way of creating splitscreen applications using the OpenGL device.
4542 Oliver Klems sent code for this, I slightly modified it. Thank you! 4542 Oliver Klems sent code for this, I slightly modified it. Thank you!
4543 4543
4544- Corrected a bug, which made the EMT_REFLECTION_2_LAYER Material disappear on some 4544- Corrected a bug, which made the EMT_REFLECTION_2_LAYER Material disappear on some
4545 hardware. 4545 hardware.
4546 4546
4547- Sirshane sent in a bug fix: It is now possible to make the mouse cursor 4547- Sirshane sent in a bug fix: It is now possible to make the mouse cursor
4548 invisible in the Linux version of the engine. Thanx sirshane! 4548 invisible in the Linux version of the engine. Thanx sirshane!
4549 4549
4550- getFrameNr() of IAnimatedMeshSceneNode is now public. 4550- getFrameNr() of IAnimatedMeshSceneNode is now public.
4551 4551
4552- Again a small bug in the 3ds file loader was fixed. 4552- Again a small bug in the 3ds file loader was fixed.
4553 4553
4554- A small bug causing light positions being transformed in the OpenGL 4554- A small bug causing light positions being transformed in the OpenGL
4555 driver differently compared to D3D. Thanx to Matthias Gall for reporting 4555 driver differently compared to D3D. Thanx to Matthias Gall for reporting
4556 this! 4556 this!
4557 4557
4558- Typing error fixed: ISceneCollisionMananger::getRayFromScreenCoordiantes renamed to 4558- Typing error fixed: ISceneCollisionMananger::getRayFromScreenCoordiantes renamed to
4559 getRayFromScreenCoordinates. 4559 getRayFromScreenCoordinates.
4560 4560
4561- Linux support with multitexturing and mipmap generation has been improved. 4561- Linux support with multitexturing and mipmap generation has been improved.
4562 4562
4563- A bug was fixed wich caused the Engine not to run when compiled 4563- A bug was fixed wich caused the Engine not to run when compiled
4564 as dynamic library under linux. Thanks to Shane Parker who pointed out 4564 as dynamic library under linux. Thanks to Shane Parker who pointed out
4565 the problem. 4565 the problem.
4566 4566
4567- A bug was fixed in position2d.h in the operator +=, and the list iterator now 4567- A bug was fixed in position2d.h in the operator +=, and the list iterator now
4568 has per and postfix operators. Thanks to Isometric God for spotting this out. 4568 has per and postfix operators. Thanks to Isometric God for spotting this out.
4569 4569
4570- A bug was fixed in the Metatriangleselector, causing it to detect only collisions 4570- A bug was fixed in the Metatriangleselector, causing it to detect only collisions
4571 with the last TriangleSelector in it. 4571 with the last TriangleSelector in it.
4572 4572
4573------------------------------------------------------------------------------------- 4573-------------------------------------------------------------------------------------
4574Changes in version 0.4.1: (18 Sep 2003) 4574Changes in version 0.4.1: (18 Sep 2003)
4575 4575
4576 4576
4577- Input events are now processed faster than repaint and window events. This 4577- Input events are now processed faster than repaint and window events. This
4578 means that input commands now effect things directly, in earlier versions 4578 means that input commands now effect things directly, in earlier versions
4579 there could be a delay when there were low frames per second. Some people 4579 there could be a delay when there were low frames per second. Some people
4580 noticed this when moving with the fps camera in large levels: The camera 4580 noticed this when moving with the fps camera in large levels: The camera
4581 sometimes stopped seconds after the button was released. This is now fixed. 4581 sometimes stopped seconds after the button was released. This is now fixed.
4582 4582
4583- A Message Box is now available in the GUI Environment. It looks like the 4583- A Message Box is now available in the GUI Environment. It looks like the
4584 windows message boxes and supports OK, Cancel, Yes and No buttons, which 4584 windows message boxes and supports OK, Cancel, Yes and No buttons, which
4585 can be combined freely. Also, it shows multiline text and adjusts its size 4585 can be combined freely. Also, it shows multiline text and adjusts its size
4586 based on the amount of text it shows, so it should be very useful for displaying 4586 based on the amount of text it shows, so it should be very useful for displaying
4587 (debug) messages during runtime. 4587 (debug) messages during runtime.
4588 4588
4589- It is now possible to make all windows (message boxes, file open dialogs, 4589- It is now possible to make all windows (message boxes, file open dialogs,
4590 simple windows) modal. 4590 simple windows) modal.
4591 4591
4592- IGUIStaticText now supports multiline text via automatic word warp and manual 4592- IGUIStaticText now supports multiline text via automatic word warp and manual
4593 line breaking with '\n'. You only need to switch it on with 4593 line breaking with '\n'. You only need to switch it on with
4594 yourText->setWordWrap(true); 4594 yourText->setWordWrap(true);
4595 4595
4596- Non default MD2 animations are now supported. Which means simply that you can 4596- Non default MD2 animations are now supported. Which means simply that you can
4597 enumerate the names of all md2 animations and the AnimatedMeshSceneNode now supports 4597 enumerate the names of all md2 animations and the AnimatedMeshSceneNode now supports
4598 a setMD2Animation() with a character string as parameter instead of a constant. 4598 a setMD2Animation() with a character string as parameter instead of a constant.
4599 4599
4600- You do not need an event receiver anymore for sending user events to the active 4600- You do not need an event receiver anymore for sending user events to the active
4601 camera, this is now done autmaticly. In addition, it is now possible to 4601 camera, this is now done autmaticly. In addition, it is now possible to
4602 set a new event receiver during runtime of the engine using IrrlichtDevice:: 4602 set a new event receiver during runtime of the engine using IrrlichtDevice::
4603 setEventReceiver(). 4603 setEventReceiver().
4604 4604
4605- It is now possible to disable and enable the input receiver of a camera. This 4605- It is now possible to disable and enable the input receiver of a camera. This
4606 is useful for example for removing the users control of the camera. To do this, 4606 is useful for example for removing the users control of the camera. To do this,
4607 call camera->setInputReceiverEnabled(false); 4607 call camera->setInputReceiverEnabled(false);
4608 4608
4609- The first person shooter camera now supports a keymap: You can define your own 4609- The first person shooter camera now supports a keymap: You can define your own
4610 key mapping to control the camera when you create it with ISceneManager:: 4610 key mapping to control the camera when you create it with ISceneManager::
4611 addCameraSceneNodeFPS(). 4611 addCameraSceneNodeFPS().
4612 4612
4613- Thanks to Jon Pry, the engine now also loads compressed TGA texture files. Now only 4613- Thanks to Jon Pry, the engine now also loads compressed TGA texture files. Now only
4614 8 bit palette using TGAs are missing. :) 4614 8 bit palette using TGAs are missing. :)
4615 4615
4616- There are methods for converting 3d coordinates in 2d coordinates and the other 4616- There are methods for converting 3d coordinates in 2d coordinates and the other
4617 way round. You can find them as two new methods of the ISceneCollisionManager: 4617 way round. You can find them as two new methods of the ISceneCollisionManager:
4618 getRayFromScreenCoordiantes() and getScreenCoordinatesFrom3DPosition(). 4618 getRayFromScreenCoordiantes() and getScreenCoordinatesFrom3DPosition().
4619 4619
4620- There are now access methods in IGUIWindow for getting pointers to the 4620- There are now access methods in IGUIWindow for getting pointers to the
4621 maximize, minimize and close buttons, to be able to remove them for 4621 maximize, minimize and close buttons, to be able to remove them for
4622 example. 4622 example.
4623 4623
4624- Before starting up the engine, a version check now is performed and a warning is 4624- Before starting up the engine, a version check now is performed and a warning is
4625 written, if Irrlicht.DLL version and header version of your application do 4625 written, if Irrlicht.DLL version and header version of your application do
4626 not match. 4626 not match.
4627 4627
4628- A bug with the skybox has been fixed: In OpenGL, it was possible to see the 4628- A bug with the skybox has been fixed: In OpenGL, it was possible to see the
4629 borders of the skybox. In addition, when a skybox was visible, there were 4629 borders of the skybox. In addition, when a skybox was visible, there were
4630 errors in the texture coordinates of other meshes. This is all fixed now. 4630 errors in the texture coordinates of other meshes. This is all fixed now.
4631 4631
4632- A bug has been fixed causing the engine to crash when removing gui childs 4632- A bug has been fixed causing the engine to crash when removing gui childs
4633 which where created inside the .dll but are removed from outside. 4633 which where created inside the .dll but are removed from outside.
4634 4634
4635- A bug was fixed causing the engine to crash when drawing debug data of 4635- A bug was fixed causing the engine to crash when drawing debug data of
4636 octtree scene nodes with geometry data with vertices with one texture 4636 octtree scene nodes with geometry data with vertices with one texture
4637 coordiante. 4637 coordiante.
4638 4638
4639- Multitexturing now works with linux, too. Thanx to Jon Pry again, for showing 4639- Multitexturing now works with linux, too. Thanx to Jon Pry again, for showing
4640 me where the problem was. 4640 me where the problem was.
4641 4641
4642- The bug (reported by saigumi) preventing scene nodes attached to a camera 4642- The bug (reported by saigumi) preventing scene nodes attached to a camera
4643 from moving correctly is now fixed. 4643 from moving correctly is now fixed.
4644 4644
4645- The "Climb-Walls" bug (reported first by Matthias Gall) is fixed. Gravity 4645- The "Climb-Walls" bug (reported first by Matthias Gall) is fixed. Gravity
4646 acceleration is now quadratic instead of linear. 4646 acceleration is now quadratic instead of linear.
4647 4647
4648- A warning is now printed out, if more vertices are rendererd with one call 4648- A warning is now printed out, if more vertices are rendererd with one call
4649 than the hardware supports. 4649 than the hardware supports.
4650 4650
4651- Other, Minor New/Changed methods in public interfaces: 4651- Other, Minor New/Changed methods in public interfaces:
4652 * get and setText() in IGUISkin 4652 * get and setText() in IGUISkin
4653 * += operators are now available in the string class. 4653 * += operators are now available in the string class.
4654 * setRelativePosition() in IGUIElement 4654 * setRelativePosition() in IGUIElement
4655 * enumeration EKEY_CODES renamed to EKEY_CODE 4655 * enumeration EKEY_CODES renamed to EKEY_CODE
4656 * getMaximalPrimitiveCount() in IVideoDriver 4656 * getMaximalPrimitiveCount() in IVideoDriver
4657 * getAnimationCount() in IAnimatedMeshMD2 4657 * getAnimationCount() in IAnimatedMeshMD2
4658 * getAnimationName() in IAnimatedMeshMD2 4658 * getAnimationName() in IAnimatedMeshMD2
4659 4659
4660------------------------------------------------------------------------------------- 4660-------------------------------------------------------------------------------------
4661Changes in version 0.4: (04 Sep 2003) 4661Changes in version 0.4: (04 Sep 2003)
4662 4662
4663- Collision detection and reponse based on ellipsoids in now implemented. 4663- Collision detection and reponse based on ellipsoids in now implemented.
4664 There is a new method available in the ISceneCollisionMananger, which returns 4664 There is a new method available in the ISceneCollisionMananger, which returns
4665 a collision response point. In addition, a new SceneNodeAnimator is available, 4665 a collision response point. In addition, a new SceneNodeAnimator is available,
4666 which causes a scene node, to which it is attached to, not to move through 4666 which causes a scene node, to which it is attached to, not to move through
4667 walls, to climb stairs and to be affected by gravity. This scene node animator 4667 walls, to climb stairs and to be affected by gravity. This scene node animator
4668 can be attached to any scene node. For example adding it to the FPSCamera, it makes 4668 can be attached to any scene node. For example adding it to the FPSCamera, it makes
4669 the user possible to walk through the 3d world as in first person shooters. 4669 the user possible to walk through the 3d world as in first person shooters.
4670 4670
4671- There is now a full featured Particle System included in the engine for 4671- There is now a full featured Particle System included in the engine for
4672 creating fire, explosions, snow, smoke and so on. 4672 creating fire, explosions, snow, smoke and so on.
4673 It is customizeable and extensible. There is a ParticleSystemScene node 4673 It is customizeable and extensible. There is a ParticleSystemScene node
4674 available in the SceneManager and some standard particle emitters and 4674 available in the SceneManager and some standard particle emitters and
4675 affectors are already implemented. 4675 affectors are already implemented.
4676 4676
4677- Realistic water: The engine now features an IWaterSurfaceScene node, which 4677- Realistic water: The engine now features an IWaterSurfaceScene node, which
4678 animates a static mesh with water waves. In combination with the new 4678 animates a static mesh with water waves. In combination with the new
4679 EMT_REFLECTION or EMT_TRANSPARENT_REFLECTION material type, you can easily 4679 EMT_REFLECTION or EMT_TRANSPARENT_REFLECTION material type, you can easily
4680 create realistic animated water surfaces. 4680 create realistic animated water surfaces.
4681 4681
4682- Triangle base picking is now possible using the ISceneCollisionMananager. 4682- Triangle base picking is now possible using the ISceneCollisionMananager.
4683 If a collision happened, the intersection point and the triangle causing 4683 If a collision happened, the intersection point and the triangle causing
4684 the intersection is returned. 4684 the intersection is returned.
4685 4685
4686- Stencil shadows are now drawn using the ZFail method by default, but it is 4686- Stencil shadows are now drawn using the ZFail method by default, but it is
4687 possible to choose ZPass, if wished. This means that the camera may now move 4687 possible to choose ZPass, if wished. This means that the camera may now move
4688 inside the shadow volumes and no errors will occur. In addition a stencil 4688 inside the shadow volumes and no errors will occur. In addition a stencil
4689 shadow bug is now fixed: In 0.3 there where no shadows visible in the TechDemo. 4689 shadow bug is now fixed: In 0.3 there where no shadows visible in the TechDemo.
4690 4690
4691- The interface of ISceneNode has changed: There is no more a RelativeTransformation 4691- The interface of ISceneNode has changed: There is no more a RelativeTransformation
4692 and AnimatedRelativeTransformation matrix. They have been replaced by 3 vectors: 4692 and AnimatedRelativeTransformation matrix. They have been replaced by 3 vectors:
4693 RelativeTranslation, RelativeRotation and RelativeScale, which can be accessed by 4693 RelativeTranslation, RelativeRotation and RelativeScale, which can be accessed by
4694 the corresponing get() and set() methods. This simplifies the interface 4694 the corresponing get() and set() methods. This simplifies the interface
4695 a lot. Also, the set/getRelativePosition was renamed to set/getPosition. 4695 a lot. Also, the set/getRelativePosition was renamed to set/getPosition.
4696 4696
4697- The new IAnimatedMeshMD2 interface now returns start, begin time and 4697- The new IAnimatedMeshMD2 interface now returns start, begin time and
4698 fps of every MD2 animation type. In this context, IAnimatedMeshSceneNode 4698 fps of every MD2 animation type. In this context, IAnimatedMeshSceneNode
4699 got a new method called setMD2Animation(), which accepts a single constant 4699 got a new method called setMD2Animation(), which accepts a single constant
4700 like EMAT_ATTACK, which starts and plays the fitting animation (attack 4700 like EMAT_ATTACK, which starts and plays the fitting animation (attack
4701 animation in this case), simplifying the interface a lot. 4701 animation in this case), simplifying the interface a lot.
4702 4702
4703- Some scene nodes can now draw debug data like their bounding boxes. 4703- Some scene nodes can now draw debug data like their bounding boxes.
4704 This feature is switched on for a single node by calling 4704 This feature is switched on for a single node by calling
4705 ISceneNode::setDebugDataVisible(true). Looks really interesting for 4705 ISceneNode::setDebugDataVisible(true). Looks really interesting for
4706 animated scene nodes like particle systems or animated meshes. 4706 animated scene nodes like particle systems or animated meshes.
4707 4707
4708- There is now a IGUIInOutFader avaiable, which is able to fade in or 4708- There is now a IGUIInOutFader avaiable, which is able to fade in or
4709 out the whole screen or parts of it. 4709 out the whole screen or parts of it.
4710 4710
4711- The new IVideoModeList is a list with all available video modes. It can 4711- The new IVideoModeList is a list with all available video modes. It can
4712 be retrieved with IrrlichtDevice::getVideoModeList(). If you are confused 4712 be retrieved with IrrlichtDevice::getVideoModeList(). If you are confused
4713 now, because you think you have to create an Irrlicht Device with a video 4713 now, because you think you have to create an Irrlicht Device with a video
4714 mode before being able to get the video mode list, let me tell you that 4714 mode before being able to get the video mode list, let me tell you that
4715 there is no need to start up an Irrlicht Device with DT_DIRECTX8, DT_OPENGL or 4715 there is no need to start up an Irrlicht Device with DT_DIRECTX8, DT_OPENGL or
4716 DT_SOFTWARE: For this (and for lots of other reasons) the null device, 4716 DT_SOFTWARE: For this (and for lots of other reasons) the null device,
4717 DT_NULL exists. 4717 DT_NULL exists.
4718 4718
4719- With the new IMeshManipulator interface accessible with 4719- With the new IMeshManipulator interface accessible with
4720 ISceneManager::getMeshManipulator() it is possible to perform some basic 4720 ISceneManager::getMeshManipulator() it is possible to perform some basic
4721 operations on meshes: Flipping all surfaces, recalculating all normals, 4721 operations on meshes: Flipping all surfaces, recalculating all normals,
4722 scaling the mesh, creating a new texture mapping and so on. 4722 scaling the mesh, creating a new texture mapping and so on.
4723 4723
4724- A new material for creating water surfaces or glass with reflections on it 4724- A new material for creating water surfaces or glass with reflections on it
4725 is available: EMT_REFLECTION_2_LAYER and EMT_TRANSPARENT_REFLECTION_2_LAYER. 4725 is available: EMT_REFLECTION_2_LAYER and EMT_TRANSPARENT_REFLECTION_2_LAYER.
4726 It has uses a reflection map, and an additional optional texture. 4726 It has uses a reflection map, and an additional optional texture.
4727 The transparency of this material is set by the alpha color value in the vertices. 4727 The transparency of this material is set by the alpha color value in the vertices.
4728 4728
4729- Another new material is EMT_SOLID_2_LAYER. It is a material with 2 textures, 4729- Another new material is EMT_SOLID_2_LAYER. It is a material with 2 textures,
4730 blended together with the alpha value of the vertex color. This material is 4730 blended together with the alpha value of the vertex color. This material is
4731 currently only available in DirectX. 4731 currently only available in DirectX.
4732 4732
4733- Trilinear Filtering is now supported by the engine. 4733- Trilinear Filtering is now supported by the engine.
4734 There is a new option in SMaterial: TrilinearFilter and EMF_TRILINEAR_FILTER. 4734 There is a new option in SMaterial: TrilinearFilter and EMF_TRILINEAR_FILTER.
4735 4735
4736- The addChild() method of the IAnimatedMeshSceneNode for adding SceneNodes to 4736- The addChild() method of the IAnimatedMeshSceneNode for adding SceneNodes to
4737 joints of skeletal animated meshes was removed. 4737 joints of skeletal animated meshes was removed.
4738 Instead there is now a new method: getMS3DJointNode(). This returns a pointer 4738 Instead there is now a new method: getMS3DJointNode(). This returns a pointer
4739 to a child node, wich has the same transformation as the corrsesponding joint. 4739 to a child node, wich has the same transformation as the corrsesponding joint.
4740 In this way it is possible to do more advanced operations with joints and 4740 In this way it is possible to do more advanced operations with joints and
4741 attaching scene nodes to joints. Also, the IAnimatedMeshMS3D interface now gives 4741 attaching scene nodes to joints. Also, the IAnimatedMeshMS3D interface now gives
4742 access to all joints. In this way, you can easily enumerate all names of all 4742 access to all joints. In this way, you can easily enumerate all names of all
4743 joints in the mesh. 4743 joints in the mesh.
4744 4744
4745- Font and color of every IGUIStaticText can now be set separately, without 4745- Font and color of every IGUIStaticText can now be set separately, without
4746 modifying the IGUISkin. 4746 modifying the IGUISkin.
4747 4747
4748- There is now a ELEMENT_LEFT gui event, which all hovered elements receive when they 4748- There is now a ELEMENT_LEFT gui event, which all hovered elements receive when they
4749 are left. 4749 are left.
4750 4750
4751- All features of the FileOpenDialog are now working. 4751- All features of the FileOpenDialog are now working.
4752 4752
4753- Debug informations are now printed out to the console window 4753- Debug informations are now printed out to the console window
4754 also on the win32 platform. 4754 also on the win32 platform.
4755 4755
4756- FPSCamera now supports setTarget(). Its not precise but working. 4756- FPSCamera now supports setTarget(). Its not precise but working.
4757 4757
4758- Textures of 3ds files are now loaded from the same directory in which the 4758- Textures of 3ds files are now loaded from the same directory in which the
4759 3ds file is. If the texture is not found there, the texture is tried to be 4759 3ds file is. If the texture is not found there, the texture is tried to be
4760 loaded from the current working directory. 4760 loaded from the current working directory.
4761 4761
4762- A small bug in the 3ds file loader has been fixed. There were 3ds files exported 4762- A small bug in the 3ds file loader has been fixed. There were 3ds files exported
4763 by anim8or, where the reading of the 3ds file never stopped. 4763 by anim8or, where the reading of the 3ds file never stopped.
4764 4764
4765- It is now possible to configure the minimal amount of polygons contained 4765- It is now possible to configure the minimal amount of polygons contained
4766 in every node in an OctTree via addOctTreeSceneNode(). 4766 in every node in an OctTree via addOctTreeSceneNode().
4767 4767
4768- There is a new template class in the core namespace: triangle3d. With this, 4768- There is a new template class in the core namespace: triangle3d. With this,
4769 it is easy to find intersections between lines and triangles, find out if 4769 it is easy to find intersections between lines and triangles, find out if
4770 a point is within a triangle and so on. 4770 a point is within a triangle and so on.
4771 4771
4772- A small bug in ISceneManager::addHillPlaneMesh() was fixed: Now the right tile 4772- A small bug in ISceneManager::addHillPlaneMesh() was fixed: Now the right tile
4773 amount is created. 4773 amount is created.
4774 4774
4775- There is a new SceneNode available: IDummyTransformationSceneNode. It exists 4775- There is a new SceneNode available: IDummyTransformationSceneNode. It exists
4776 for making it possible to insert matrix transformations anywhere into the 4776 for making it possible to insert matrix transformations anywhere into the
4777 scene graph. 4777 scene graph.
4778 4778
4779- Added a new SceneNode animator for deleting Scene nodes automaticly after some 4779- Added a new SceneNode animator for deleting Scene nodes automaticly after some
4780 time. Create it with ISceneManager::createDeleteAnimator(). 4780 time. Create it with ISceneManager::createDeleteAnimator().
4781 4781
4782- The techdemo now is interactive. After a short non-interactive flight over 4782- The techdemo now is interactive. After a short non-interactive flight over
4783 the quake 3 level, you are placed as player inside the level, may move around, 4783 the quake 3 level, you are placed as player inside the level, may move around,
4784 shoot fire balls and take a look at some animated characters which are placed 4784 shoot fire balls and take a look at some animated characters which are placed
4785 on the map. 4785 on the map.
4786 4786
4787- I fixed a bug which caused the screen get black when choosing shadows and fullscreen 4787- I fixed a bug which caused the screen get black when choosing shadows and fullscreen
4788 on some special 3d adapters. 4788 on some special 3d adapters.
4789 4789
4790- I fixed some bugs in the linux port: The timer returned an incorrect time, causing 4790- I fixed some bugs in the linux port: The timer returned an incorrect time, causing
4791 wrong animations everywhere and the releasing of keys and mouse buttons was not 4791 wrong animations everywhere and the releasing of keys and mouse buttons was not
4792 sent as event. In addition, I placed a copy of the zlib.a and jpeglib.a into the 4792 sent as event. In addition, I placed a copy of the zlib.a and jpeglib.a into the
4793 /lib/Linux directory and changed the Makefiles of the examples and the source 4793 /lib/Linux directory and changed the Makefiles of the examples and the source
4794 of the engine for doing this automaticly in the future, so I hope there will be no 4794 of the engine for doing this automaticly in the future, so I hope there will be no
4795 problems with other versions of zlib and jpeglib anymore. 4795 problems with other versions of zlib and jpeglib anymore.
4796 4796
4797- There are 2 new tutorials: One showing how to do collision detection and 4797- There are 2 new tutorials: One showing how to do collision detection and
4798 for special effects. 4798 for special effects.
4799 4799
4800- Other, Minor New/Changed methods in public interfaces: 4800- Other, Minor New/Changed methods in public interfaces:
4801 * getVersion() in IrrlichtDevice 4801 * getVersion() in IrrlichtDevice
4802 * getLengthSQ() in vector3d 4802 * getLengthSQ() in vector3d
4803 * getInterpolated() in vector3d 4803 * getInterpolated() in vector3d
4804 * getInterpolated() in SColor 4804 * getInterpolated() in SColor
4805 * getAngle() in vector2d 4805 * getAngle() in vector2d
4806 * getAngleWith() in vector2d 4806 * getAngleWith() in vector2d
4807 * getPrimitiveCountDrawed() in IVideoDriver renamed to getPrimitiveCountDrawn() 4807 * getPrimitiveCountDrawed() in IVideoDriver renamed to getPrimitiveCountDrawn()
4808 * getSceneNodeFromSceenCoordinates() renamed to getSceneNodeFromScreenCoordinates() 4808 * getSceneNodeFromSceenCoordinates() renamed to getSceneNodeFromScreenCoordinates()
4809 * getMeshType() in IAnimatedMesh 4809 * getMeshType() in IAnimatedMesh
4810 * getInterpolated() in aabbox 4810 * getInterpolated() in aabbox
4811 * setMD2Animation() in IAnimatedMeshSceneNode 4811 * setMD2Animation() in IAnimatedMeshSceneNode
4812 * getFullFileName() in IFileList 4812 * getFullFileName() in IFileList
4813 * addShadowVolumeSceneNode() in IAnimatedMeshSceneNode extended with zfail parameter 4813 * addShadowVolumeSceneNode() in IAnimatedMeshSceneNode extended with zfail parameter
4814 * drawStencilShadowVolume() in IVideoDriver extended with zfail parameter 4814 * drawStencilShadowVolume() in IVideoDriver extended with zfail parameter
4815 * getDistanceFromSQ() in vector3d 4815 * getDistanceFromSQ() in vector3d
4816 * subString() in string 4816 * subString() in string
4817 * findFirst() in string 4817 * findFirst() in string
4818 * findLast() in string 4818 * findLast() in string
4819 * getTriangleSelector() in ISceneNode 4819 * getTriangleSelector() in ISceneNode
4820 * setTriangleSelector() in ISceneNode 4820 * setTriangleSelector() in ISceneNode
4821 * draw3DTriangle() in IVideoDriver 4821 * draw3DTriangle() in IVideoDriver
4822 * setShadowColor() in ISceneManager 4822 * setShadowColor() in ISceneManager
4823 * getShadowColor() in ISceneManager 4823 * getShadowColor() in ISceneManager
4824 * addToDeletionQueue() in ISceneManager 4824 * addToDeletionQueue() in ISceneManager
4825 * getSceneNodeFromId() in ISceneManager 4825 * getSceneNodeFromId() in ISceneManager
4826 4826
4827------------------------------------------------------------------------------------- 4827-------------------------------------------------------------------------------------
4828Changes in version 0.3: (18 Jul 2003) 4828Changes in version 0.3: (18 Jul 2003)
4829 4829
4830- Linux port: The Irrlicht Engine now compiles and runs on Linux. Currently only 4830- Linux port: The Irrlicht Engine now compiles and runs on Linux. Currently only
4831 the OpenGL driver is available. The Software driver would be there too, if 4831 the OpenGL driver is available. The Software driver would be there too, if
4832 somebody could tell me a fast way to blit a A1R5G5B5 surface to the screen 4832 somebody could tell me a fast way to blit a A1R5G5B5 surface to the screen
4833 using X. 4833 using X.
4834 All examples do compile and run, but there are some things missing: 4834 All examples do compile and run, but there are some things missing:
4835 * It is not yet possible to make the mouse cursor invisibe. 4835 * It is not yet possible to make the mouse cursor invisibe.
4836 * The timer seems not to return the currect time. 4836 * The timer seems not to return the currect time.
4837 * Multitexturing does not work correctly on all gfx adapters. 4837 * Multitexturing does not work correctly on all gfx adapters.
4838 4838
4839- Ms3D Animations: The engine is now able to play skeletal animations directy 4839- Ms3D Animations: The engine is now able to play skeletal animations directy
4840 from Milkshape 3D (.ms3d) files. It is also possible to attach objects to 4840 from Milkshape 3D (.ms3d) files. It is also possible to attach objects to
4841 parts of the animated mesh. For example a weapon to the left hand of 4841 parts of the animated mesh. For example a weapon to the left hand of
4842 the animated model. 4842 the animated model.
4843 4843
4844- Because the swprintf function in Windows32 does not match the ISO C standard, 4844- Because the swprintf function in Windows32 does not match the ISO C standard,
4845 and it does in linux and all other platforms, there is now a define in Irrlicht.h, 4845 and it does in linux and all other platforms, there is now a define in Irrlicht.h,
4846 to make the code be the same on all platforms: 4846 to make the code be the same on all platforms:
4847 #define swprintf _snwprintf 4847 #define swprintf _snwprintf
4848 This simply means that you need to add a parameter to your swprintf calls if 4848 This simply means that you need to add a parameter to your swprintf calls if
4849 you used this function in your win32 irrlicht engine projects. For example instead 4849 you used this function in your win32 irrlicht engine projects. For example instead
4850 of writing 4850 of writing
4851 wchar_t tmp[255]; 4851 wchar_t tmp[255];
4852 swprint(tmp, "FPS: %d", fps); 4852 swprint(tmp, "FPS: %d", fps);
4853 you now write 4853 you now write
4854 wchar_t tmp[255]; 4854 wchar_t tmp[255];
4855 swprint(tmp, 255, "FPS: %d", fps); 4855 swprint(tmp, 255, "FPS: %d", fps);
4856 4856
4857- Automatic culling has changed a little bit: It is now done by the SceneManager. 4857- Automatic culling has changed a little bit: It is now done by the SceneManager.
4858 Scene nodes now only need to return a valid, non transformed bounding box to be 4858 Scene nodes now only need to return a valid, non transformed bounding box to be
4859 culled automaticly. It is explaned in the CustomSceneNode Tutorial how this works. 4859 culled automaticly. It is explaned in the CustomSceneNode Tutorial how this works.
4860 4860
4861- It is now possible to use the engine easily for 2D graphics: There are now to new 4861- It is now possible to use the engine easily for 2D graphics: There are now to new
4862 methods in the IVideoDriver, which create an 1bit alpha channel for textures 4862 methods in the IVideoDriver, which create an 1bit alpha channel for textures
4863 using an color key. The methods are both named makeColorKeyTexture. There is a 4863 using an color key. The methods are both named makeColorKeyTexture. There is a
4864 tutorial '2d graphics' which explains how this works. 4864 tutorial '2d graphics' which explains how this works.
4865 4865
4866- The rect template class was removed and replaced by the rectEx class. There 4866- The rect template class was removed and replaced by the rectEx class. There
4867 is now only one rectangle template available, called 'rect' for simplifying 4867 is now only one rectangle template available, called 'rect' for simplifying
4868 the interface. 4868 the interface.
4869 4869
4870- The texture coordinate bug in Milkshape 3d models with lots of shared vertices 4870- The texture coordinate bug in Milkshape 3d models with lots of shared vertices
4871 was fixed. 4871 was fixed.
4872 4872
4873- Bugfix with GUI environment hovering invisible elements. 4873- Bugfix with GUI environment hovering invisible elements.
4874 4874
4875- There are two new tutorials: One for 2d graphics, and one for user interface. 4875- There are two new tutorials: One for 2d graphics, and one for user interface.
4876 4876
4877- Tutorial changes: 4877- Tutorial changes:
4878 * All backslashes replaced by slashes in file names in 4878 * All backslashes replaced by slashes in file names in
4879 all tutorials for linux compatibility. 4879 all tutorials for linux compatibility.
4880 * RectEx replaces with rect in 1.HelloWorld 4880 * RectEx replaces with rect in 1.HelloWorld
4881 * Added second parameter to swprintf in 2.Quake3Map 4881 * Added second parameter to swprintf in 2.Quake3Map
4882 * Added bounding box creation to 3.CustomSceneNode 4882 * Added bounding box creation to 3.CustomSceneNode
4883 * Added second parameter to swprintf in 4.Movement 4883 * Added second parameter to swprintf in 4.Movement
4884 4884
4885- New/Changed methods in public interfaces: 4885- New/Changed methods in public interfaces:
4886 * getClosestPoint in line3d 4886 * getClosestPoint in line3d
4887 * getMatrixOfMeshPart in IAnimatedMesh 4887 * getMatrixOfMeshPart in IAnimatedMesh
4888 * removeChild in ISceneNode now returns true or false 4888 * removeChild in ISceneNode now returns true or false
4889 * addChild in IAnimatedMeshSceneNode 4889 * addChild in IAnimatedMeshSceneNode
4890 * setParent in ISceneNode 4890 * setParent in ISceneNode
4891 4891
4892------------------------------------------------------------------------------------- 4892-------------------------------------------------------------------------------------
4893Changes in version 0.2.5: (22 Jun 2003) 4893Changes in version 0.2.5: (22 Jun 2003)
4894 4894
4895- A new material type is available: EMT_TRANSPARENT_VERTEX_ALPHA, which 4895- A new material type is available: EMT_TRANSPARENT_VERTEX_ALPHA, which
4896 realizes transparency based on the vertex alpha color. It currently is 4896 realizes transparency based on the vertex alpha color. It currently is
4897 only implemented in the DirectX device. 4897 only implemented in the DirectX device.
4898 4898
4899- There is now an ISceneCollisionManager available. Get it with 4899- There is now an ISceneCollisionManager available. Get it with
4900 getSceneCollisionManager() from the ISceneManager. It currently only implements 4900 getSceneCollisionManager() from the ISceneManager. It currently only implements
4901 picking, but more is coming soon. 4901 picking, but more is coming soon.
4902 4902
4903- Automatic Culling based on Bounding Boxes is implemented now. It can be switched on 4903- Automatic Culling based on Bounding Boxes is implemented now. It can be switched on
4904 or off for every SceneNode seperately using ISceneNode::setAutomaticCulling(). 4904 or off for every SceneNode seperately using ISceneNode::setAutomaticCulling().
4905 It is on by default. 4905 It is on by default.
4906 4906
4907- It is now possible to remove loaded textures for freeing memory or reloading them. 4907- It is now possible to remove loaded textures for freeing memory or reloading them.
4908 Use IVideoDriver::removeTexture() or removeAllTextures(). 4908 Use IVideoDriver::removeTexture() or removeAllTextures().
4909 4909
4910- New drawing methods in the IVideoDriver interface: 4910- New drawing methods in the IVideoDriver interface:
4911 * Draw3dLine(), drawing a 3d line. 4911 * Draw3dLine(), drawing a 3d line.
4912 * Draw3dBox(), which draws an axis aligned bounding box. 4912 * Draw3dBox(), which draws an axis aligned bounding box.
4913 * Draw2dLine(), currently only supported by the Software device. 4913 * Draw2dLine(), currently only supported by the Software device.
4914 4914
4915- MD2 bugfixes: 4915- MD2 bugfixes:
4916 * There was a small bug with texture coordinates. 4916 * There was a small bug with texture coordinates.
4917 * Frames are now correctly interpolated when playing animations. 4917 * Frames are now correctly interpolated when playing animations.
4918 4918
4919- Bugfix in the 3ds file format loader: Single objects in the 3ds file with multiple 4919- Bugfix in the 3ds file format loader: Single objects in the 3ds file with multiple
4920 materials attached are now loaded correctly. 4920 materials attached are now loaded correctly.
4921 4921
4922- list.h renamed to irrlist.h due to compatibility issues. 4922- list.h renamed to irrlist.h due to compatibility issues.
4923 4923
4924- Now works with Dev-C++ 5 Beta 8. (4.9.8.0) 4924- Now works with Dev-C++ 5 Beta 8. (4.9.8.0)
4925 4925
4926- New/Changed methods in public interfaces: 4926- New/Changed methods in public interfaces:
4927 * 'getInverse' in matrix4. 4927 * 'getInverse' in matrix4.
4928 * 'transformBox' in matrix4. 4928 * 'transformBox' in matrix4.
4929 * 'repair' in aabbox. 4929 * 'repair' in aabbox.
4930 * 'intersectsWithLine' in aabbox. 4930 * 'intersectsWithLine' in aabbox.
4931 * 'getVector' in line3d. 4931 * 'getVector' in line3d.
4932 * 'getMiddle' in line3d. 4932 * 'getMiddle' in line3d.
4933 * 'normalize' method in vector3d and vector2d now returns reference to vector. 4933 * 'normalize' method in vector3d and vector2d now returns reference to vector.
4934 * 'getTransformedBoundingBox' in ISceneNode. 4934 * 'getTransformedBoundingBox' in ISceneNode.
4935 * 'getChildren' in ISceneNode 4935 * 'getChildren' in ISceneNode
4936 * 'setRotation' in ISceneNode 4936 * 'setRotation' in ISceneNode
4937 * 'addHillPlaneMesh' in ISceneManager now accepts a texture repeat count parameter. 4937 * 'addHillPlaneMesh' in ISceneManager now accepts a texture repeat count parameter.
4938 4938
4939 4939
4940------------------------------------------------------------------------------------- 4940-------------------------------------------------------------------------------------
4941Changes in version 0.2: (19 May 2003) 4941Changes in version 0.2: (19 May 2003)
4942 4942
4943- The engine is now able to load .3ds files, with their materials and textures. 4943- The engine is now able to load .3ds files, with their materials and textures.
4944 4944
4945- There are some new SceneNodeAnimators: A fly straight animator and a texture animator. 4945- There are some new SceneNodeAnimators: A fly straight animator and a texture animator.
4946 4946
4947- Texture coordinates can now be set to clamp or wrap mode with 4947- Texture coordinates can now be set to clamp or wrap mode with
4948 a flag in the SMaterial struct. 4948 a flag in the SMaterial struct.
4949 4949
4950- Skyboxes are implemented. 4950- Skyboxes are implemented.
4951 4951
4952- Billboards now work 100% correctly. 4952- Billboards now work 100% correctly.
4953 4953
4954- The IAnimatedMeshSceneNode is now able to draw shadows of itself. To enable this, just call 4954- The IAnimatedMeshSceneNode is now able to draw shadows of itself. To enable this, just call
4955 addShadowVolumeSceneNode(). Please note that shadows are currently just experimental, 4955 addShadowVolumeSceneNode(). Please note that shadows are currently just experimental,
4956 there are some bugs, and they only only in Direct3D mode. 4956 there are some bugs, and they only only in Direct3D mode.
4957 4957
4958- A small bug in the view frustum and the octree fixed. 4958- A small bug in the view frustum and the octree fixed.
4959 4959
4960- The default aspect ratio in all camera scene nodes was changed. 4960- The default aspect ratio in all camera scene nodes was changed.
4961 4961
4962- Some changes and extenstions to the core::matrix4, SViewFrustum, plane3d and 4962- Some changes and extenstions to the core::matrix4, SViewFrustum, plane3d and
4963 aabbox were made. The plane3dex was removed, there is now only one plane implementation 4963 aabbox were made. The plane3dex was removed, there is now only one plane implementation
4964 available. Implemented some ideas and suggestions by Mark Jeacocke. Thanx a lot! 4964 available. Implemented some ideas and suggestions by Mark Jeacocke. Thanx a lot!
4965 4965
4966- The interface for adding dynamic lights has been enhanced. There are some new methods 4966- The interface for adding dynamic lights has been enhanced. There are some new methods
4967 for handling dynamic light in the IVideoDriver interface. For example, it is now possible 4967 for handling dynamic light in the IVideoDriver interface. For example, it is now possible
4968 to change the ambient light. 4968 to change the ambient light.
4969 4969
4970- There is a new parameter in the createDevice() function, which specifies if the 4970- There is a new parameter in the createDevice() function, which specifies if the
4971 stencil buffer should be activated. Also, now all parameters have default parameters. 4971 stencil buffer should be activated. Also, now all parameters have default parameters.
4972 4972
4973- There is now a timer object to get the current timer. It can be received using 4973- There is now a timer object to get the current timer. It can be received using
4974 the getTimer() method from the IrrlichtDevice. 4974 the getTimer() method from the IrrlichtDevice.
4975 4975
4976- The first person shooter camera is now able to be moved by external using 4976- The first person shooter camera is now able to be moved by external using
4977 setRelativePosition() and the sceneNodeAnimators. In addition, it now supports 4977 setRelativePosition() and the sceneNodeAnimators. In addition, it now supports
4978 multiple FPS cameras. 4978 multiple FPS cameras.
4979 4979
4980- Mesh format loading extenstions are now possible. To extend the engine with a 4980- Mesh format loading extenstions are now possible. To extend the engine with a
4981 mesh format it currently does not support (e.g. .cob), just implement a 4981 mesh format it currently does not support (e.g. .cob), just implement a
4982 IMeshLoader interface and add it to the engine calling 4982 IMeshLoader interface and add it to the engine calling
4983 ISceneManager::addExternalMeshLoader(). 4983 ISceneManager::addExternalMeshLoader().
4984 4984
4985- It is now possible to extend the Irrlicht Engine easily with new texture file format 4985- It is now possible to extend the Irrlicht Engine easily with new texture file format
4986 loaders. If there is an image file format the engine does not support (for example 4986 loaders. If there is an image file format the engine does not support (for example
4987 .gif files) the IImageLoader interface can be implemented to load .gif files 4987 .gif files) the IImageLoader interface can be implemented to load .gif files
4988 and added to the engine via IVideoDriver::addExternalSurfaceLoader(). 4988 and added to the engine via IVideoDriver::addExternalSurfaceLoader().
4989 4989
4990------------------------------------------------------------------------------------- 4990-------------------------------------------------------------------------------------
4991Changes in version 0.1.5: (03 Apr 2003) 4991Changes in version 0.1.5: (03 Apr 2003)
4992 4992
4993- The zlib and libjpeg are now included in the SDK. 4993- The zlib and libjpeg are now included in the SDK.
4994 4994
4995- It is now possible to let the scene manager generate a hilly plane on the fly. 4995- It is now possible to let the scene manager generate a hilly plane on the fly.
4996 4996
4997- The Interface for handling dynamic lights was simplified. 4997- The Interface for handling dynamic lights was simplified.
4998 4998
4999- The OpenGL 2D and 3D device is now full implemented. 4999- The OpenGL 2D and 3D device is now full implemented.
5000 5000
5001- There is now a way to access to root scene node from the scene manager, and so it 5001- There is now a way to access to root scene node from the scene manager, and so it
5002 is possible to add external created custom scene nodes to the scene. 5002 is possible to add external created custom scene nodes to the scene.
5003 5003
5004- There is a new Camera control scene node available in the engine: First Person Shooter 5004- There is a new Camera control scene node available in the engine: First Person Shooter
5005 Camera Control. Look with mouse movement, move and strafe with the cursor keys. 5005 Camera Control. Look with mouse movement, move and strafe with the cursor keys.
5006 5006
5007- The engine now compiles with g++ and the Microsoft compilers, which enables it to 5007- The engine now compiles with g++ and the Microsoft compilers, which enables it to
5008 develop applications for the engine with VisualC++6.0, VisualC++.NET and Dev-C++. 5008 develop applications for the engine with VisualC++6.0, VisualC++.NET and Dev-C++.
5009 5009
5010- There is now a ICursorControl available in the engine, which is able to modify the 5010- There is now a ICursorControl available in the engine, which is able to modify the
5011 mouse cursor: Get/Set the position of the cursor, make it invisible or visible. 5011 mouse cursor: Get/Set the position of the cursor, make it invisible or visible.
5012 5012
5013- video::Color was renamed to video::SColor to fit the Irrlicht Engine naming conventions 5013- video::Color was renamed to video::SColor to fit the Irrlicht Engine naming conventions
5014 and for g++ compatibility issues in the Vertices. 5014 and for g++ compatibility issues in the Vertices.
5015 5015
5016------------------------------------------------------------------------------------- 5016-------------------------------------------------------------------------------------
5017Release notes of version 0.1: (14 Mar 2003) 5017Release notes of version 0.1: (14 Mar 2003)
5018 5018
5019 This is an alpha version of the SDK. So please note that there are 5019 This is an alpha version of the SDK. So please note that there are
5020 features missing in the engine and maybe also some bugs. The following 5020 features missing in the engine and maybe also some bugs. The following
5021 list is a complete list of parts of this alpha SDK which do not work 5021 list is a complete list of parts of this alpha SDK which do not work
5022 100% correct. All other parts which can be found in the documentation 5022 100% correct. All other parts which can be found in the documentation
5023 and accessed with the Irrlicht header files work and can already be 5023 and accessed with the Irrlicht header files work and can already be
5024 used. 5024 used.
5025 5025
5026- OpenGL Device 5026- OpenGL Device
5027 The OpenGL Device is currently only able to load textures and draw basic 5027 The OpenGL Device is currently only able to load textures and draw basic
5028 3D primitives. No 2D functions, complex materials and dynamic light are 5028 3D primitives. No 2D functions, complex materials and dynamic light are
5029 implemented. Please use the DirectX8 or the Software Device instead. 5029 implemented. Please use the DirectX8 or the Software Device instead.
5030 In the next release (0.2) the OpenGL device will be complete. 5030 In the next release (0.2) the OpenGL device will be complete.
5031 5031
5032- Software Device 5032- Software Device
5033 Dynamic lighting, multitexturing, 3d clipping and bilinear filtering are 5033 Dynamic lighting, multitexturing, 3d clipping and bilinear filtering are
5034 not implemented because the Software Device was intented to to only 2d 5034 not implemented because the Software Device was intented to to only 2d
5035 functions, the primitive 3d functions are only an addition. Until the 5035 functions, the primitive 3d functions are only an addition. Until the
5036 first non beta release (1.0) of the Engine, some more 3d functionality 5036 first non beta release (1.0) of the Engine, some more 3d functionality
5037 will be added. 5037 will be added.
5038 5038
5039- BspTree 5039- BspTree
5040 The binary space partition scene node does not work correctly and has 5040 The binary space partition scene node does not work correctly and has
5041 some bugs in it, which might lead to crashes. Please use the OctTree 5041 some bugs in it, which might lead to crashes. Please use the OctTree
5042 scene node instead. There is nearly no difference between the interface 5042 scene node instead. There is nearly no difference between the interface
5043 of them. 5043 of them.
5044 5044
5045- MeshViewerGUIElement 5045- MeshViewerGUIElement
5046 The camera control of this element is currently disabled. 5046 The camera control of this element is currently disabled.
5047 5047
5048- FileOpenDialog 5048- FileOpenDialog
5049 Not all functions are implemented. 5049 Not all functions are implemented.
5050 5050
5051- Render to Texture support 5051- Render to Texture support
5052 Is not implemented yet. 5052 Is not implemented yet.
5053 5053
5054- MS3D Skeletal Animation 5054- MS3D Skeletal Animation
5055 A loaded mesh is currently not animated and only drawn static. 5055 A loaded mesh is currently not animated and only drawn static.
5056 5056
5057- Quake 3 maps 5057- Quake 3 maps
5058 No support for curved surfaces yet. 5058 No support for curved surfaces yet.
5059 5059
5060- Linux Support 5060- Linux Support
5061 The engine currently only runs with Windows platforms. A linux version 5061 The engine currently only runs with Windows platforms. A linux version
5062 will be available somewhere between the versions 0.2 and 0.5, it depends 5062 will be available somewhere between the versions 0.2 and 0.5, it depends
5063 on the need of the users. 5063 on the need of the users.
5064 5064
5065------------------------------------------------------------------------------------- 5065-------------------------------------------------------------------------------------