diff options
Diffstat (limited to '')
-rw-r--r-- | libraries/irrlicht-1.8/changes.txt | 10130 |
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 @@ | |||
1 | Changes in 1.8 (7.11.2012) | 1 | Changes 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: |
428 | The following names can be queried for the given types: | 428 | The 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 | ----------------------------- |
578 | Changes in 1.7.4 | 578 | Changes 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 | ----------------------------- |
603 | Changes in 1.7.3 (20.02.2012) | 603 | Changes 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 | ----------------------------- |
736 | Changes in 1.7.2 (15.11.2010) | 736 | Changes 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 | ----------------------------- |
820 | Changes in 1.7.1 (17.02.2010) | 820 | Changes 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 | --------------------------- |
869 | Changes in 1.7 (03.02.2010) | 869 | Changes 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 | ----------------------------- |
1066 | Changes in 1.6.1 (13.01.2010) | 1066 | Changes 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 | --------------------------- |
1116 | Changes in 1.6 (23.09.2009) | 1116 | Changes 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 | ------------------------------------- |
1767 | Changes in version 1.5.2 (16.12.2009) | 1767 | Changes 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 | ------------------------------------- |
1792 | Changes in version 1.5.1 (05.08.2009) | 1792 | Changes 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 | ----------------------------------- |
1889 | Changes in version 1.5 (15.12.2008) | 1889 | Changes 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 | ------------------------------------------- |
2195 | Changes in version 1.4.2 (22.9.2008) | 2195 | Changes 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 | ------------------------------------------- |
2232 | Changes in version 1.4.1 (04 Jun 2008) | 2232 | Changes 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 | ------------------------------------------- |
2321 | Changes in version 1.4 (30 Nov 2007) | 2321 | Changes 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 | ||
2440 | GUI: | 2440 | GUI: |
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 | ------------------------------------------- |
2530 | Changes in version 1.3.1 (20 Jun 2007) | 2530 | Changes 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 | ||
2659 | GUI: | 2659 | GUI: |
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 | ||
2697 | GUI Editor: | 2697 | GUI 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 | ------------------------------------------- |
2707 | Changes in version 1.3 (15 Mar 2007) | 2707 | Changes 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 | ||
2736 | Font improvements: | 2736 | Font 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 | ------------------------------------------- |
2969 | Changes in version 1.2 (29 Nov 2006) | 2969 | Changes 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 | ||
3083 | Changes in version 1.1 (06 Aug 2006) | 3083 | Changes 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 | ------------------------------------------- |
3168 | Changes in version 1.0 (19 Apr 2006) | 3168 | Changes 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 | ------------------------------------------------------------------------------------- |
3226 | Changes in version 0.14.0 (30 November 2005) | 3226 | Changes 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 | ------------------------------------------------------------------------------------- |
3360 | Changes in version 0.12.0 (24 August 2005) | 3360 | Changes 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 | ------------------------------------------------------------------------------------- |
3495 | Changes in version 0.11.0 (08 July 2005) | 3495 | Changes 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 | ------------------------------------------------------------------------------------- |
3596 | Changes in version 0.10.0 (26 May 2005) | 3596 | Changes 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 | ------------------------------------------------------------------------------------- |
3759 | Changes in version 0.9 (28 Mar 2005) | 3759 | Changes 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 | ------------------------------------------------------------------------------------- |
3942 | Changes in version 0.8 (19 Feb 2005) | 3942 | Changes 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 | ------------------------------------------------------------------------------------- |
4063 | Changes in version 0.7.1: (26 Sep 2004) | 4063 | Changes 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 | ------------------------------------------------------------------------------------- |
4086 | Changes in version 0.7: (11 Sep 2004) | 4086 | Changes 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 | ------------------------------------------------------------------------------------- |
4212 | Changes in version 0.6: (09 Mar 2004) | 4212 | Changes 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 | ------------------------------------------------------------------------------------- |
4306 | Changes in version 0.5: (17 Feb 2004) | 4306 | Changes 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 | ------------------------------------------------------------------------------------- |
4461 | Changes in version 0.4.2: (13 Dec 2003) | 4461 | Changes 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 | ------------------------------------------------------------------------------------- |
4574 | Changes in version 0.4.1: (18 Sep 2003) | 4574 | Changes 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 | ------------------------------------------------------------------------------------- |
4661 | Changes in version 0.4: (04 Sep 2003) | 4661 | Changes 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 | ------------------------------------------------------------------------------------- |
4828 | Changes in version 0.3: (18 Jul 2003) | 4828 | Changes 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 | ------------------------------------------------------------------------------------- |
4893 | Changes in version 0.2.5: (22 Jun 2003) | 4893 | Changes 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 | ------------------------------------------------------------------------------------- |
4941 | Changes in version 0.2: (19 May 2003) | 4941 | Changes 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 | ------------------------------------------------------------------------------------- |
4991 | Changes in version 0.1.5: (03 Apr 2003) | 4991 | Changes 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 | ------------------------------------------------------------------------------------- |
5017 | Release notes of version 0.1: (14 Mar 2003) | 5017 | Release 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 | ------------------------------------------------------------------------------------- |