Commit Graph

452 Commits

Author SHA1 Message Date
Lasse Öörni
6ccb31f6f5 Update to Bullet 2.82. 2014-02-01 15:59:25 +02:00
Lasse Öörni
d50403798a Update AngelScript to 2.28.1. 2014-02-01 15:05:53 +02:00
Lasse Öörni
6d5ddc23e0 Bump the copyright for 2014. 2014-02-01 14:37:21 +02:00
Lasse Öörni
936f19d2a2 Added external projects/links documentation page. 2014-01-26 14:27:42 +02:00
Lasse Öörni
4b739dc15c Added contributor. 2014-01-23 11:37:12 +02:00
Lasse Öörni
40d759fbae New skybox from Vladimir. Set fog to white in scenes using the skybox. Water scene lighting slightly brightened to match the skybox. 2014-01-20 12:01:38 +02:00
Lasse Öörni
18e2349ae1 Added script bindings for the new SDL controller constants. Updated Input documentation. 2014-01-20 10:19:50 +02:00
Lasse Öörni
7f80c53be5 Fixed line breaks in credits. 2014-01-19 15:51:10 +02:00
Lasse Öörni
1ace697dc9 Added water example with reflection/refraction. Improved the water shader to include proper fresnel calculation and a noise map. Closes #120. 2014-01-19 15:47:56 +02:00
Lasse Öörni
eb4e99457c Code cleanup. Removed Camera functions to return forward, right, up vectors as they are now also in Node. Added Lua property accessors for Node up/right vectors. Exposed SmoothStep() to script. Modified Node::LookAt() to use the new Quaternion function. Updated credits. 2014-01-18 20:41:46 +02:00
Lasse Öörni
6878e19c67 Refactored check for dynamic buffers into a function. 2014-01-03 09:23:29 +02:00
Lasse Öörni
746e2331df Update credits. 2013-12-19 09:17:50 +02:00
Lasse Öörni
c7e72b02da Restore previous camera yaw + pitch control, but add a toggle in settings dialog to control whether the pitch is clamped between -90 and 90 degrees. 2013-12-18 21:59:17 +02:00
Lasse Öörni
b496594203 Update credits. Normalize whitespace. 2013-12-18 11:56:16 +02:00
Lasse Öörni
679007d1b5 Normalize whitespace, update documentation. 2013-12-16 23:22:28 +02:00
Lasse Öörni
dc6294af16 Added generated event list documentation page. Closes #66. 2013-12-08 01:39:36 +02:00
Yao Wei Tjong 姚伟忠
04404b768d Update documentation page to link back to shorten Urho3D website URL. 2013-12-06 00:03:01 +08:00
Yao Wei Tjong 姚伟忠
89a05a8017 Update documentation to reference back to new main site. 2013-12-04 23:53:35 +08:00
StevenZhang
a17baf2695 make AngelScript an optional module, you can use -DENABLE_ANGELSCRIPT=0 to disable it. 2013-12-02 19:02:39 +02:00
Lasse Öörni
3168019a5f Updated to AngelScript 2.28.0. Added dictionary addon from AngelScript SDK. Closes #46. 2013-11-14 00:16:56 +02:00
Lasse Öörni
2c0c10cdcb Renamed "Example applications" Doxygen page to "Examples". 2013-11-12 01:42:58 +02:00
Yao Wei Tjong 姚伟忠
1b97acc6f3 Minor documentation update for Raspberry Pi cross-compiling build. 2013-11-06 22:53:45 +08:00
Lasse Öörni
cfa6b135ce Moved Urho3DPlayer class definition to a .h file. Updated documentation to refer to Urho3DPlayer. 2013-11-04 19:07:00 +02:00
Lasse Öörni
afa6c4ccc3 Initial SDL 2.0.1 merge. Windows tested OK. Android will crash when returning to the application. 2013-10-27 03:11:36 +03:00
Lasse Öörni
bc6dd70fae Update FreeType version in documentation, and FreeType's own documentation. Enabled FreeType subpixel hinting. Restored old BlueHighway.ttf. Removed FreeType .mk and jamfiles. 2013-10-14 23:15:52 +03:00
Lasse Öörni
30ce75fd68 LZ4 compressed package file support. Closes #6. 2013-10-12 15:03:17 +03:00
Lasse Öörni
0618b5fc94 Added LuaJIT license and documented the LuaJIT CMake option. 2013-09-29 22:29:24 +00:00
Lasse Öörni
56b453c25e Update to AngelScript 2.28.0 WIP to fix a ternary operator crash bug. 2013-09-29 15:47:55 +00:00
Lasse Öörni
d90a9168cf Applied joystick index patch from Gunnar Kriik. 2013-09-25 21:51:32 +00:00
Wei Tjong Yao
363a4055ea Differentiate between batch option with CMake build option to prevent CMake warning on unused define. Reorder the position of optional CMake options according CMake usage documentation. Highlight the out-of-source build in change history. 2013-09-25 09:50:02 +00:00
Lasse Öörni
6228209b6f Allow dragging scene nodes to a StaticModelGroup component in the editor to make them instance nodes.
Allow dragging a scene node to a Constraint component to make it the constraint's remote end.
2013-09-24 22:52:25 +00:00
Lasse Öörni
dbd7687c56 Added configurable Z bias to Text3D effect.
Default Text effect color changed to opaque black.
2013-09-23 18:49:50 +00:00
Lasse Öörni
64e826c3e3 Update changelog.
Position the editor windows lower so that they don't overlap the stats-text in default windowed resolution.
2013-09-23 00:22:30 +00:00
Lasse Öörni
eb6ba62ab9 Added the LuaScript library to Doxygen documentation.
Added LuaScript doxygen page.
2013-09-22 23:41:27 +00:00
Lasse Öörni
48532b2509 Added C++ / script integration samples, which reimplement AnimatingScene sample, but use a script object instead of a C++ component.
Added Execute() function to LuaScriptInstance.
Fixed LuaScriptInstance::SetScriptFileName() not loading the script.
2013-09-22 19:15:30 +00:00
Lasse Öörni
3c60b5f2d0 Applied patch from Ali Kämäräinen. VS2013 support, ifexists checks when deleting old VS build files, and improved Tundra import. 2013-09-22 17:04:15 +00:00
Lasse Öörni
cf50bb9f39 Optionally remember last resource path in editor.
Remember last import path in editor.
Set node / scene / UI element picker paths from remembered resource path if possible.
2013-09-22 12:18:14 +00:00
Aster Jian
d41b4853c0 Fixed some errors in LuaScriptAPI.dox, Add LuaScriptAPI.dox to Urho3D.dox. 2013-09-12 05:21:57 +00:00
Lasse Öörni
e90e99536a Documentation update. 2013-09-09 22:00:14 +00:00
Lasse Öörni
4741b3cf08 Added Blender exporter from Reattiva. 2013-09-08 10:51:02 +00:00
Lasse Öörni
8da3fa5860 Documentation tweaks. 2013-09-02 20:40:06 +00:00
Lasse Öörni
4cc1858329 Removed the old large script example applications and batch files to start them.
Updated documentation for the new sample applications.
Changed the Lua sprite example to use the common sample initialization.
2013-09-02 18:50:15 +00:00
Lasse Öörni
68892cae15 Credits fix. 2013-08-31 17:13:38 +00:00
Lasse Öörni
f7ac7eb713 Applied window fixed resizing patch from Sebastian Delatorre. 2013-08-31 10:28:48 +00:00
Lasse Öörni
3ac94c3551 Fix version of SDL in the documentation. 2013-08-13 21:58:07 +00:00
Wei Tjong Yao
1385700c7f Fixed broken wiki link. 2013-08-09 17:21:30 +00:00
Wei Tjong Yao
9d9b2278fa Updated documentation on using Urho3D as external library. 2013-08-09 04:33:51 +00:00
Lasse Öörni
0eb06b2438 Updated to AngelScript 2.27.
Renamed Thread::Start() to Thread::Run() to match Application class.
2013-07-30 13:24:18 +00:00
Lasse Öörni
53d2404aee Applied OS cursor shape patch from Paul Noome. 2013-07-23 23:29:00 +00:00
Lasse Öörni
e5d4a3939b Emit public drag start/move/end events. Adapted from patch contributed by Chris Friesen. 2013-07-04 21:34:58 +00:00
Lasse Öörni
ea67568632 Added Lua bindings contributed by Aster Jian.
Fixed missing includes in some header files.
2013-06-29 16:42:38 +00:00
Lasse Öörni
65a4a3b51f Applied Bullet 2.81 update patch from amadeus_osa.
Added split impulse & number of constraint solver iteration attributes to PhysicsWorld. Split impulse gives more accurate collision detection but is disabled by default for better performance.
2013-06-23 12:38:11 +00:00
Lasse Öörni
730c6eda2f Updated to AngelScript 2.27.0 WIP. 2013-05-25 22:11:21 +00:00
Lasse Öörni
1d2fec862c Applied CustomGeometry convex hull collision patch from Pete Leigh, with added serialization support. 2013-05-09 11:30:24 +00:00
Lasse Öörni
4a3ec28769 Added point inside StaticModel check from Firegorilla.
Simplified Node::LookAt() to always take a world space position.
Constness cleanup.
2013-05-08 22:31:29 +00:00
Lasse Öörni
3279cc74fc Updated changelog. 2013-04-27 23:12:31 +00:00
Lasse Öörni
abae3414ac Applied camera constness patch from Erik Beran. 2013-04-22 11:49:56 +00:00
Lasse Öörni
c1e1c20ea2 Added documentation page on navigation. 2013-04-09 21:26:10 +00:00
Lasse Öörni
08075f0915 Reversed if's in Variant code to favor the correct type.
Added non-const Variant functions to get modifiable collection objects (buffer, variant vector, variant map.)
Added Recast & Detour libraries. Added skeleton of a Navigation library & component, no functionality yet.
2013-04-04 07:49:18 +00:00
Lasse Öörni
9532e7fdd1 Renamed documentation page. 2013-04-01 15:14:59 +00:00
Lasse Öörni
b28621a3a4 Documented engine initialization parameters. 2013-04-01 14:33:38 +00:00
Lasse Öörni
42448b8924 Updated to AngelScript 2.26.2.
Small fixes to "Quickstart in C++" documentation.
2013-03-31 22:09:28 +00:00
Lasse Öörni
6a7ffdcd19 Updated to newest AssImp from git repository.
Fixed File::GetChecksum() logging numerous errors if file open in write mode. This prevented AssetImporter scene mode from working properly.
Fixed DocConverter asserting in debug mode. Added safe IsAlpha() & IsDigit() functions to StringUtils and exposed them to script.
2013-03-30 22:35:11 +00:00
Lasse Öörni
b865108ecd Applied patch for poor CPU performance on MinGW builds. 2013-03-25 12:35:54 +00:00
Lasse Öörni
ff564d3360 Switched to GLEW library for OpenGL extensions. 2013-03-20 21:52:53 +00:00
Lasse Öörni
21dd4b6c70 Updated the Maxscript exporter.
Reduce DOT graph depth in the documentation.
2013-03-13 08:27:08 +00:00
Lasse Öörni
c513645a1a Added modified Ogre Maxscript Exporter contributed by Vladimir Pobedinskij, which outputs materials in Urho3D .xml format. 2013-03-10 12:34:38 +00:00
Lasse Öörni
6e90c6ea13 Fixed bug in win32 ScanDir implementation, which did not scan subdirs if filter was not *.*.
Added Extras directory for contributions which are not strictly Urho3D core.
Added OgreBatchConverter utility from Carlo Carollo, modified to use Urho3D classes to be crossplatform compatible.
2013-03-09 20:42:45 +00:00
Lasse Öörni
6b28127751 DocConverter improvements. 2013-03-08 16:49:13 +00:00
Lasse Öörni
424e1750f4 Added note of online Doxygen documentation. 2013-03-08 15:58:56 +00:00
Lasse Öörni
4e836e574f Migrated to AngelScript 2.26.1 WIP.
Octree code cleanup.
Added nullchecks to RigidBody in case Bullet callbacks are fired when the body's scene node has been destroyed.
2013-02-20 11:16:27 +00:00
Lasse Öörni
fcd9e37b61 Updated version history. 2013-01-13 22:44:51 +00:00
Lasse Öörni
a40fead7dc Updated license for the new year. 2013-01-01 11:46:18 +00:00
Lasse Öörni
04774d851b Removed unintended hyperlink from documentation. 2012-12-26 16:15:05 +00:00
Lasse Öörni
7d8558a51f Applied massive patch from weitjong.
Changes:

I. Build environment
1. Added new cmake definition to disable/enable Log subsystem in main's CMakeLists.txt.
2. Added setting in main's CMakeLists.txt to pass the "-D_DEBUG" compiler flags for Debug configuration build on non-MSVC compiler. At least it is needed on XCode to get verbose debug log. I assume MSVC does not have this problem.
3. Added '../Engine. to include directories in Input's CMakeLists.txt to allow Input to reference Engine class for handling of SDL_QUIT event (see V.5 and VII.1).
4. Changed cmake_gcc.sh to sed Doxyfile to exclude Direct3D9 and include OpenGL variants of the classes, assuming gcc is only for Mac OS X and Linux.
5. Changed cmake_ios.sh to sed Doxyfile to exclude Direct3D9 and include OpenGL variants of the classes.
6. Added new cmake_macosx.sh shell script to prepare cmake for Xcode in Mac OS X environment.
7. Updated Docs/Reference.dox to correct the URL to AMD's Compressonator.
8. Updated Docs/ScriptAPI.dox to reflect API changes in UI.
9. Added *.sh scripts in the Bin folder to invoke the respective demos.

II. Audio
1. Minor refactoring on Audio class: removed redundant header include, removed redundant call.
2. Corrected minor documentation typo error in Sound.h.

III. Container
1. HashMap minor optimisation: operator [] implementation would not traverse the container twice before node insertion, refactored Clear() and Sort() implementation, changed to static_cast instead of reinterpret_cast, etc.
2. HashSet minor optimisation: refactored Clear() and Sort() implementation, changed to static_cast instead of reinterpret_cast, etc.
3. List minor optimisation: refactored Clear() implementation and changed to static_cast instead of reinterpret_cast.
4. Corrected documentation error for operator > in Pair class.
5. Added new Contains() methods and renamed Print()/PrintArgs() to AppendWithFormat()/AppendWithFormatArgs (while they are still new :-) in String class. Added ToString() global function in StringUtils class to take advantage of new append methods (useful in constructing a formatted string for logging in one liner; becomes no-ops when logging not enabled).
6. Added new Remove() method in Vector and PODVector classes.

IV. Core
1. Enhanced ProcessUtils class to add native approach to detect number of Physical and Logical CPUs for iOS platform.
   BUG FIX: Previous ParseArguments(int, char**) implementation assumed there were no space in the pathname which causes parsing error when it does. Fixed by enclosed the argument in quotes before appending into command line. With this fix, Ninja War demo is runable in iPhoneSimulator.
2. In StringUtils added new convenient global function to construct a formatted string, see III.6.
3. In Variant added MAX_VAR_TYPES enum for guarding a while loop.

V. Engine
1. Added pragma to suppress LLVM/Clang erroneous warnings on unused functions in APITemplates.h.
2. Minor refactoring on Console class: removed redundant call, renamed current_Row to currentRow_.
3. In CoreAPI refactored code to replace map's Find() method call with the newly added Contains() method, added call to reserve container capacity.
4. Refactored DebugHUD class to use the String's new append method instead of a series of strings concatenation.
5. Enhanced Engine class to make Logging an optional feature that can be turned on/off like Profiler subsystem (see I.1), only unpause the audio when it was pause by the Engine previously, no need to check for uninitialized graphics due to window was closed (see VII.1) as engine's exiting_ flag should be set when SDL quits (even by quitting the process externally).
6. GraphicsAPI minor optimisation: Add call to reserve vector to the required known size.
7. Enhanced IOAPI to add preprocessor directive to no-ops the logging functions when Logging not enabled, see I.1.
8. Enhanced UIAPI to reflect changes in UI: mainly, exposed nonFocusedMouseWheel property (see XV.12).

VI. Graphics
1. AnimatedModel optimisation: refactored ProcessRayQuery() implementation, added call to reserve container capacity, removed copy-pasta comment.
   BUG FIX: Infinite while loop in SetMorphsAttr() as the index was never incremented.
2. Changed Animation constructor to also initialize length_.
3. Refactored AnimationController class: only mark for network update when necessary, corrected minor documentation error, added call to reserve container capacity, prevent out-of-bound index access in SetAnimationAttr() implementation, use the StringHash instead of plain name to find the animation state.
4. Refactored AnimationState to avoid redundant call.
5. Refactored BillboardSet class: removed redundant class forward, changed to use the revised Drawable's constructor (see VI.9), added call to reserve container capacity.
6. Refactored Camera class to remove redundant construct. 
7. Refactored DebugRenderer to reuse code. 
8. Refactored DecalSet class: changed to use the revised Drawable's constructor (see VI.9), added call to reserve container capacity, added new flag to track the event subscription.
9. Refactored Drawable to change its constructor to take additional drawableFlags parameter.
10. Enhanced Light class: changed to use the revised Drawable's constructor (see VI.9), refactored ProcessRayQuery() implementation, added implementation to debug draw the directional light.
    BUG FIX: On mobile devices, the CSM only has two splits. Use preprocessor directive to define the attribute as VAR_VECTOR2 instead of VAR_VECTOR4, accordingly.
    BUG FIX: Previous implementation used local ray against world bounding box for RAY_OBB. Fixed by first transformed the world bounding box to local coordinate.
11. Refactored Material class to set or unset the specular_ flag without traversing the shader parameters each time.
12. Refactored Model class: added call to reserve container capacity, removed redundant call to set the number of vertex buffer to 1 (which is Geometry's default).
13. Modified OcclusionBuffer Clear() method to use post decrement.
14. Refactored Octant and Octree classes: changed to use the new PODVector Remove() method, added index_ instance variable to facilitate child octant deletion, simplified the conditional check in the Release() but still achieving the same result.
15. Refactored OctreeQuery class to reorder the condition and to use post increment.
16. Refactored ParticleEmitter class: removed redundant class forward, changed to use the other ColorFade constructor that inits both color and time, added call to reserve container capacity.
17. Refactored Renderer class: removed unused static constants, amended the documentation text for HandleGraphicsFeatures(), delayed event subscription until object is initialized, moved logic to validate the shadow cascades from getter to setter, changed to use String's Contains() method instead of Find(), and a few more code changes (that make no difference :-).
18. Refactored ShaderParser class to change the method signature of GetCombination() method, removed redundant include.
19. Refactored Skeleton class to add call to reserver container capacity.
20. Refactored StaticModel class: changed to use the revised Drawable's constructor (see VI.9), changed the ProcessRayQuery() implementation.
21. Enhanced Tangent class to use pointer arithmetic instead of array indexing.
22. Refactored Terrain class: reordered instance variable initialization in constructor to keep compiler happy, added call to reserve the container capacity.
23. Refactored TerrainPatch class: changed to use the revised Drawable's constructor (see VI.9), changed ProcessRayQuery() implementation.
24. Refactored View class: removed unused method declarations (did not have implementation), changed to reuse existing Vector3 constants, changed octree query base class to FrustumOctreeQuery instead (no additional penalty as the methods are already virtualized anyway), moved constant to outside the loop in CheckVisibilityWork() implementation, reordered logical statement to take advantage of short circuit evaluation, and more.
25. Refactored Viewport class to use the more common way to insert into container.
26. Refactored Zone class: changed to use the revised Drawable's constructor (see VI.9), reordered logical statement to take advantage of short circuit evaluation.
27. Enhanced OGLGraphics class: added code to prevent unnecessary call to get OGL extensions, changed to use new String's Contains() method, added flag to speed up the Release() method, removed redundant code.
28. Changed OGLGraphicsImpl to remove unused include.
29. Changed OGLIndexBuffer to remove unnecessary override. Probably it was copy pasta from Direct3D9 version.
30. Refactored OGLShader class to use the modified ShaderParser's GetCombination() method, see VI.18.
31. Refactored OGLShaderProgram class to use reuse the index for the second string Find() call.
32. Refactored OGLShaderVariation class to the string Insert() method instead to insert all the defines.
33. Refactored OGLTexture class to use the enum instead of hardcoded value.
34. Refactored OGLTexture2D class to simplify the boolean assignment.
35. Refactored OGLTextureCube class to simplify the boolean assignment.
36. Refactored OGLVertexBuffer class to remove unnecessary override and to simplify the for loop condition check in GetElementOffset() method.
37. Refactored CustomGeometry class: changed to use the revised Drawable's constructor (see VI.9), changed ProcessRayQuery() implementation.

VII. Input
1. Enhanced Input class: added call to Engine::Exit() to properly setting the exiting flag instead of just closing the graphics (see V.5), refactored constructor to initialize the mouse related instance variables, delayed event subscription until object is initialized, and other minor refactoring.

VIII. IO
1. Enhanced FileSystem class: added Mac OS X implementation for SystemOpen() method, changed to use new String's Contains() method instead of Find().
   BUG FIX: On non-Win32 platform, files (including dirs) having name starts with '.' were being returned in the result although SCAN_HIDDEN flag is not set. The fix now excludes them.
2. Enhanced Log class: added preprocessor directive to no-ops the logging macros when Logging not enabled (see I.1), removed "XCODE_DEBUG_CONFIGURATION" as it is not effective (at least on my Xcode). Also replaced "XCODE_DEBUG_CONFIGURATION" with "_DEBUG" in SDL_uikitappdelegate.m.
3. Minor changed in Serializer.cpp to suppress compiler warning.

IX. Math
1. Refactored BoundingBox class to reuse code.
2. Enhanced MathDefs.h: better PI, added new constant M_DEGTORAD_2 which is M_DEGTORAD / 2.f (same as M_PI_2, M_PI_4 convention used in math.h).
3. Refactored Frustum class to use the new M_DEGTORAD_2 constant.
4. Refactored Plane.h to reuse code.
   BUG FIX: Copy constructor did not initialize the absNormal_ properly.
5. Enhanced Quaternion class: added multiply-assign operator with a scalar, added Conjugate() method, refactored to reuse code as much as possible, returned conjugate as inverse for unit quaternion, refactored code to use the new M_DEGTORAD_2 constant.
6. Refactored Rect class to reuse code.
7. Refactored Sphere to use post increment.

X. Network
1. Refactored Connection class: changed to hide the detail of the message processing from the caller, added preprocessor directive to exclude statistics when logging is disabled, changed the code to reflect the change done in Node::CreateComponent() method signature (see XIII.2).
2. Refactored Controls class: removed redundant class forward, changed the way default constructor initialize the instance variables.
3. Refactored Network class: removed redundant class forward, changed to reflect changes done in X.1 to process messages, changed the GetConnection() implementation to avoid traversing of the clientConnections_ unnecessarily.

XI. Physics
1. Enhanced CollisionShape class to add preprocessor directive to no-ops the logging calls when Logging not enabled, see I.1. Refactored the HeightfieldData() method to eliminate if statement in the loop.
2. Minor changed in Constraint.cpp to suppress compiler warning.
3. Refactored PhysicsWorld class: removed redundant call in destructor, changed to use the new PODVector Remove() method.
4. Refactored RigidBody class to use the new PODVector Remove() method.

XII. Resource
1. Minor changed in Image.cpp to suppress compiler warning.
2. Enhanced ResourceCache class: changed code to subscribe to event only when auto reload is enabled, refactored to use HashMap's Find() instead of traversing through container manually, changed to use new String's Contains() method.
3. Minor changed in XMLElement class to define an EMPTY element constant.

XIII. Scene
1. Refactored Component class: removed redundant include, reordered logical evaluation.
2. Refactored Node class: changed the CreateComponent() to accept optional ID parameter (combined previously two methods into one), refactored to reuse code as much as possible, added new method to reset scene called by Scene class, moved protected section to correct place adhering to code convention, added new private convenient method to remove component. 
3. Refactored Scene class: changed destructor and in NodeAdded() method to use the new Node::ResetScene() method (see XIII.2), changed the GetVarNamesAttr() implementation to avoid if in the loop, instead of using XMLElement and String default constructor, changed to reference new EMPTY XMLElement constant (see XII.3) and String's Clear() method, respectively.
4. Enhanced SceneResolver class to add preprocessor directive to no-ops the logging calls when Logging not enabled, see I.1.
   BUG FIX: The missing 'else' statement in Resolve() method might cause component ID not resolved correctly. Fixed by adding the else statement.
5. Enhanced Serializable class: refactored code to suppress compiler warning, added new feature to read/write new optional "enum" XML element.

XIV. Script
1. Enhanced Addons class: removed redundant include, changed code to suppress compiler warning, exposed new String's Contains() methods to script enginei (see III.6).
   BUG FIX: The Find() and FindLast() were erroneously exposed as returning integer value. Changed it to returning unsigned instead.
2. Enhanced Script class: added preprocessor directive to no-ops the logging calls when Logging not enabled (see I.1), changed to use new String's Contains() method instead of Find(), removed redundant call in destructor.
   BUG FIX: The logMode_ instance variable was not initialized properly in the constructor (although documentation says it should be defaulted to immediate mode). Initialized it according to documentation.
3. Refactored ScriptFile class to remove redundant call.
   BUG FIX: Previous implementation in Load() assumed script log mode. The fix saves the old mode and use it to revert back the mode.
4. Enhanced ScriptInstance class: refactored ClearDelayedExecute() method to avoid unnecessary vector traversal, simplified code that tracks the execution of METHOD_DELAYEDSTART, refactored to code reuse.

XV. UI
1. Refactored UIQuad and UIBatch: Added new constructor that initialize instance variables, moved GetInterpolatedColor() method between the two, modified the UIBatch methods to take in const UIElement reference, changed the implementation to code reuse as much as possible.
2. Refactored BorderImage class to use the new UIBatch constructor, see XV.1.
3. Very minor changed in Button.cpp to simplify the logical statement.
4. Refactored DropDownList class: Changed to call Menu::GetBatches() instead of Button::GetBatches(), changed for code reuse.
5. Refactored FileSelector class: added call to reserve container capacity, changed for code reuse.
6. Refacotred Font class: added call to reserve container capacity, removed redundant call. 
   BUG FIX: Corrected a typo in GetKerning() implementation causing the kerning information not being applied correctly between adjacent characters.
7. Refactored LineEdit class: Changed to call BorderImage::ApplyAttributes() instead of UIElement::Attributes(), removed redundant construct, changed to reuse code as much as possible, initialized variable in the setter method instead of during update.
8. Enhanced ListView class: added optional index parameter for RemoveItem() method, subscribed to the defocused event only when it is needed, changed to reuse code as much as possible (page up/down and home/end now support additive multi-select as the positive side effect), removed redundant construct.
9. Very minor change in Menu.cpp to use Variant::EMPTY instead of constructing an empty Variant instance.
10. Refactored ScrollView class to reuse code.
11. Refactored Text class to use the new UIBatch constructor, see XV.1.
12. Enhanced UI class: Added support to enable non-focused mouse wheel behaviour similar to Mac OS X and Linux, delayed post-update and render-update event subscription until object is initialized, removed redundant construct.
13. Enhanced UIElement class: added optional index parameter for RemoveChild() method, refactor the code to use the right constness, renamed method from GetUintColor() to GetDerivedColor(), added new private Detach() method, added mutable keyword as necessary to support const getter, refactored destructor method, added call to reserve container capacity, and more.
14. Minor change in Window.cpp to suppress compiler warning.

XVI. Third Party
1. FreeType: Included zutil.c as source in the CMakeLists.txt and fixed the problem when compiling with _DEBUG set.
2. kNet: Removed std::cout statement in the UDPMessageConnection.cpp.
3. SDL: Changed XCODE_DEBUG_CONFIGURATION to _DEBUG in SDL_uikitappdelegate.m, see VIII.2.
   BUG FIX: The touch focus was always zero causing the touch event from touchpad in Mac OS X platform was not handled correctly by Input class because the GetInputInstance() method returns 0 when windowID is 0. Assign the touch's focus with current focus window ID. NOT SURE THIS IS THE CORRECT FIX THOUGH.

XVII. Demos
1. BUG FIX: TestScene.as and TestSceneOld.as assert in the btAlignedObjectArray.h. It was caused by the script trying to remove the RigidBody and/or CollisionShape while in the middle of physics collision event handling. The Bullet's assert could be observed when build using _DEBUG. Fixed by postponinig the removal to post step.
2. Enhanced the NinjaSnowWar to support no-background-music (nobgm) option.
   BUG FIX: BGM was purposely not played on multiplayer mode assuming testing is done on a same test machine, however, this has caused the BGM not to be played on the genuinue multiplayer mode using different machines. Re-enable BGM on multiplayer mode. Instead, added comments in the demo shell/batch script on how to avoid multiple BGM played on a same test machine.
2012-12-25 20:56:05 +00:00
Lasse Öörni
411ab13883 Applied jpeg save and system time patches from Alex Fuller. 2012-12-20 23:23:07 +00:00
Lasse Öörni
4cafb5c0d7 Added tiled BorderImage patch from primitivewaste.
Added foreachv macro from Jason Kinzer.
2012-12-04 22:25:44 +00:00
Lasse Öörni
5be828da83 Added foreach implementation from Jason Kinzer. 2012-12-01 21:39:50 +00:00
Lasse Öörni
48da9e9093 Applied VS2012 / ShaderCompiler patch from Colin Barrett. 2012-11-01 19:46:37 +00:00
Lasse Öörni
e64d64034e Added cubic environment mapping shaders, techniques & example materials.
Fixed bug in loading cube map miplevel 0 if mips were skipped.
2012-10-26 19:45:38 +00:00
Lasse Öörni
eadca81cf4 Updated to Open Asset Import Library 3.0. 2012-09-22 20:23:35 +00:00
Lasse Öörni
aeb5d9d281 Updated to AngelScript 2.25.0.
Fixed assert in AnimatedModel when increasing number of animation states in the editor.
2012-09-22 16:49:04 +00:00
Lasse Öörni
a3d63cce41 Updated version history. 2012-09-01 11:24:53 +00:00
Lasse Öörni
71cf37c257 Applied CMakeLists.txt patches from skaiware. 2012-08-18 14:58:12 +00:00
Lasse Öörni
f0b6d55b28 Enclosed Urho3D classes inside Urho3D namespace to avoid clashes with external libraries. 2012-08-15 22:57:52 +00:00
Lasse Öörni
ef12e4a769 Added contributions/bugfixes category to the credits. 2012-07-25 07:21:08 +00:00
Lasse Öörni
a9e9c7c5c5 Readme formatting. 2012-07-22 15:52:13 +00:00
Lasse Öörni
272ba97189 Docs formatting. 2012-07-22 14:28:41 +00:00
Lasse Öörni
c9ea9cb384 Changelog for next release.
In the demo scripts, only increase decal max. vertex/index count when targeting skinned geometry.
Do not try to add decals in headless mode.
2012-07-22 13:56:59 +00:00
Lasse Öörni
30c21a3789 Added terrain blend shader and terrain example.
Added function to get terrain normal at point.
Always update terrain patch stitching.
Fixed material texture indexing & setting.
2012-07-20 21:49:24 +00:00
Lasse Öörni
5ede251b62 Use full asset paths (with / sanitated to _) in Tundra scene import, as there may be assets with same name but with different content in different subdirectories. 2012-07-04 20:59:45 +00:00
Lasse Öörni
dee2e099de Added ETC1 & PVRTC decompression from the Oolong Engine. Used when not supported in hardware. 2012-07-03 11:34:07 +00:00
Lasse Öörni
96bdad35a0 Updated to AngelScript 2.24.0a.
Do not sort batches front-to-back on mobile devices.
Disable shadow map reuse in NinjaSnowWar on mobile devices.
2012-07-01 15:35:06 +00:00
Lasse Öörni
627d2c94d7 Switched from GLFW & PortAudio back to (modified) SDL 2.0.
Do not draw debug geometry for bones that do not contribute to skinning.
Activate input immediately after title bar drag (Windows) or when the cursor is moved into the client area after title bar drag (Mac & Linux).
2012-05-13 22:28:06 +00:00
Lasse Öörni
011c8e8e8f Updated version history for impending new release. 2012-05-06 12:38:07 +00:00
Lasse Öörni
a84ed27df9 Updated to AngelScript 2.23.1.
Removed link time code generation from the release build as it greatly increases compile time, but does not seem to provide observable performance benefit.
2012-04-29 13:10:22 +00:00
Lasse Öörni
2f4165bf0f Added Squish library for DXT decompression. 2012-04-25 21:07:35 +00:00
Lasse Öörni
1a9dced05b Updated to AngelScript 2.23.1 WIP.
Fixed crash at exit when a script contains an array of Node handles.
Fixed missing sound type enum in the editor. Added Ambient sound type.
Fixed incorrect occlusion when a drawable is set for no occlusion, but the parent octant is occluded.
Removed unnecessary node lookup in network replication.
Added GetScene() to Component for convenience.
2012-04-21 12:50:48 +00:00
Lasse Öörni
8edf0240a1 Migration to Bullet physics underway. Most of physics functionality & examples broken for now. 2012-04-09 18:10:17 +00:00
Lasse Öörni
fbd019cff4 Updated to AngelScript 2.23.0. 2012-04-07 20:26:01 +00:00
Lasse Öörni
cd00810139 Updated docs for upcoming release. 2012-02-28 18:51:31 +00:00
Lasse Öörni
3afbeb83ea Added a documentation page on Unicode.
Restructured the quickstart-examples, and fixed the C++ quickstart code.
2012-02-26 11:35:03 +00:00
Lasse Öörni
a1049eab4e Updated to AngelScript 2.23.0 WIP.
Removed the AngelScript datatype caching optimization, as it was possibly causing a VariantMap crash in the editor.
2012-02-22 23:18:50 +00:00
Lasse Öörni
4e67907b8a Updated to AngelScript 2.22.2. 2012-02-14 21:57:12 +00:00
Lasse Öörni
667258b618 Updated to newest kNet. 2012-01-02 11:52:01 +00:00
Lasse Öörni
cc3ee34f58 Increased occlusion buffer depth bias.
Minor code cleanup.
Updated copyright for 2012.
2012-01-01 00:07:57 +00:00
Lasse Öörni
777810d84f Updated to Open Asset Import Library rev. 1102. 2011-12-30 19:32:45 +00:00
Lasse Öörni
408d063cf5 Documentation edits. 2011-12-28 14:36:55 +00:00
Lasse Öörni
3d105cbdb6 Updated readme for new version. 2011-12-28 14:19:18 +00:00
Lasse Öörni
5c27c0f69f Changed to use pugixml instead of TinyXML.
Changed the XMLElement::RemoveChild() interface.
Removed the restriction that XML documents can only be saved to files.
Cleaned up CMakeLists files.
2011-12-23 21:46:49 +00:00
Lasse Öörni
b2fae0ccb4 Added FXAA edge filter.
Updated readme for upcoming release.
2011-12-08 23:19:04 +00:00
Lasse Öörni
8cb99ac13b Updated to libcpuid 0.2.0 to not require the CPU core amount sanitation hack. 2011-11-28 09:31:20 +00:00
Lasse Öörni
471d3ec5ff Added libcpuid for improved CPU detection.
Added separate functions for querying logical & physical CPU count.
2011-11-27 17:45:03 +00:00
Lasse Öörni
c5f6516aee Migrated to AngelScript 2.22.1 WIP. 2011-11-26 11:19:20 +00:00
Lasse Öörni
8b61a23cd0 Updated to newest ODE from svn. 2011-11-21 19:37:19 +00:00
Lasse Öörni
2f0d3caecd Migrated to AngelScript 2.22.0. 2011-11-10 00:05:05 +00:00
Lasse Öörni
8a52455faa Added shadow mask feature, which allows selective shadow casting by different lights.
Documented multithreading.
2011-11-07 20:11:20 +00:00
Lasse Öörni
b60a806058 Updated changelog in the docs as well. 2011-10-23 21:14:46 +00:00
Lasse Öörni
bdc29caebd Reverted to AngelScript 2.21.1 because of crash with VariantMap.
Find the zone at far clip plane and use it for the background color.
Added zone mask for drawables, allowing to select which zones they can belong to.
When zone moves or changes its bounding box, clear the cached zone from all drawables that were inside.
2011-10-22 18:49:15 +00:00
Lasse Öörni
1c47bc6f20 Migrated to AngelScript 2.22.0 WIP. 2011-10-21 23:01:30 +00:00
Lasse Öörni
80a6948b22 Large rendering architecture refactoring.
Optimized shaders to do more work in the vertex shader.
Deferred rendering removed, at least for now.
Switched to RGB normal maps, with specular intensity in the alpha channel. Removed NormalMapTool.
Optimization of light influence on objects by stencil masking.
Split shadowed lights are now rendered in one pass. A virtual shadow depth cube texture is used for point lights.
Refactored shadow map allocation. Allow to use lower resolution shadow maps than quarter size.
Added the Polyhedron math object, used for improved shadow map focusing.
Reversed the convention for the plane intercept parameter.
Math-related code cleanup.
2011-09-26 21:56:31 +00:00
Lasse Öörni
18edecbb70 Added release history. 2011-09-11 08:02:10 +00:00
Lasse Öörni
514ef8966d Fixed OpenGL path.
Documentation update.
2011-09-09 07:51:13 +00:00
Lasse Öörni
ad6243870b Updated to newest kNet & AngelScript.
Fixed spot light shadow map focusing.
Code cleanup.
2011-09-05 19:17:44 +00:00
Lasse Öörni
a5089929b6 Documentation update. 2011-09-05 07:02:03 +00:00
Lasse Öörni
a4508509ee Documentation edits. 2011-09-01 10:42:31 +00:00
Lasse Öörni
a89cb22161 Replaced edge filtering with temporal antialiasing with ghosting prevention. 2011-09-01 07:19:32 +00:00
Lasse Öörni
d39446c592 Fixed menu item name.
Added editor instructions.
2011-08-21 23:59:49 +00:00
Lasse Öörni
9bebc4898e Switched to AngelScript 2.21.1 WIP.
Fixed node reparenting removing extra items from the scene hierarchy window in the editor.
Guard against cyclic parent-child assignments in Node & UIElement.
2011-08-18 15:25:51 +00:00
Lasse Öörni
bf2b9ded9a Switched to Open Asset Import Library svn revision 1062. 2011-08-11 21:54:28 +00:00
Lasse Öörni
71603ae52e Initial kNet-based networking implementation.
Renamed SharedPtr::Ptr() to RawPtr() to avoid conflicts with kNet's Ptr macro.
Added chat test program.
2011-07-13 23:32:57 +00:00
Lasse Öörni
180da947fa Added generated scripting API reference.
Modified Script::DumpAPI() to output in Doxygen format.
2011-07-05 08:25:04 +00:00
Lasse Öörni
40caea422e Migrated to AngelScript 2.21.0.
Removed manual invocation of AngelScript garbage collection.
2011-07-04 21:33:42 +00:00
Lasse Öörni
69a78da8df Switched to GLFW 3.0. 2011-06-30 21:03:59 +00:00
Lasse Öörni
0d29d818ad Moved from SDL to GLFW & PortAudio. 2011-06-24 23:20:09 +00:00
Lasse Öörni
d55d29612c Documentation update. 2011-06-19 23:13:11 +00:00
Lasse Öörni
432f57b4b0 Use SDL 1.3 in OpenGL mode.
Removed system fonts directory feature because of being platform-specific.
Added the Anonymous Pro fixed width font.
2011-06-18 18:33:29 +00:00
Lasse Öörni
83bf3d1464 Switched to NVIDIA FXAA II based edge filter. 2011-06-15 13:33:16 +00:00
Lasse Öörni
483413e472 Fixed the UI not rendering on OpenGL. 2011-06-10 23:04:36 +00:00
Lasse Öörni
c9c0610709 Added alternative OpenGL rendering path, not fully complete yet.
Fixed bugs in HashMap / HashSet.
2011-06-10 22:35:43 +00:00
Lasse Öörni
f60321b20f Use PODVector more extensively.
Moved Color class to Core library.
2011-05-21 12:15:04 +00:00
Lasse Öörni
27661073e7 Migrated to AngelScript 2.21.0 WIP. 2011-05-21 11:02:49 +00:00
Lasse Öörni
f3859c1ed7 Added documentation about containers.
Removed unnecessary StringUtils.h includes.
Changed GetStringListIndex() to use an empty string as a terminator, similarly to enum attributes.
2011-05-21 10:01:31 +00:00
Lasse Öörni
4c94e77887 Switched skip lists to red-black trees instead. 2011-05-18 21:55:57 +00:00
Lasse Öörni
b03111146e Added custom container & string classes. So far only used by AreaAllocator. 2011-05-15 22:45:43 +00:00
Lasse Öörni
cb68328d06 Updated to AngelScript 2.20.3 WIP.
Fixed crashes with script value types and GCC.
Implemented default arguments in script API.
2011-05-09 19:32:39 +00:00
Lasse Öörni
3979d4bbb7 Updated ODE to svn rev 1806. 2011-05-07 17:54:47 +00:00
Lasse Öörni
6098409700 Upgraded to ENet 1.3.1.
Disabled buffer security checks for smaller executable size.
Removed deprecated ODE files.
2011-05-07 16:25:25 +00:00
Lasse Öörni
a7a458b3a9 Script API registration cleanup: asMETHODPR changed to asMETHOD where possible.
Added Remove() to Component & Node & UIElement; before it was script-only.
Renamed FrameUpdate back to FrameInfo.
Documentation update.
2011-05-04 07:05:26 +00:00
Lasse Öörni
2a6c10874c Documentation structure and Getting Started-documentation.
Fixed deletion of object, if no shared pointer to it existed previously, and it sent an event.
Fixed threading issue with objects' static type names. Now they are defined inside OBJECTTYPESTATIC macro as well.
Fixed Engine crash when running without the script system.
2011-05-03 23:17:15 +00:00
Lasse Öörni
9d4deaf853 AnimationController functions refactoring.
Documentation update.
Moved Engine scripting initialization to a separate function. This will result in significantly smaller executable if skipped.
Fixed ErrorDialog() when called from script.
2011-05-03 14:47:02 +00:00
Lasse Öörni
5d033b7f62 Moved Urho3D.dox into the Docs subdirectory. 2011-05-03 06:59:06 +00:00