Commit Graph

2197 Commits

Author SHA1 Message Date
Lasse Öörni
3002776ea4 Fixed incorrect octree insertion of drawables in some cases (eg. large terrain.)
Added ToString() to BoundingBox.
Removed unnecessary defined_ variable from Frustum.
2013-02-19 13:55:17 +00:00
Lasse Öörni
14fa3b3d6e Added SavePNG() function to Image. 2013-02-09 23:16:13 +00:00
Lasse Öörni
92eb073cb7 Applied cmake patch from weitjong.
Renamed finalize_exe and finalize_lib cmake macros to setup_executable & setup_library, as they already do much more than finalization.
2013-02-07 09:46:23 +00:00
Lasse Öörni
3dc3c836a6 Applied patch from weitjong, which improves OSX/iOS build, and removes dead code. 2013-02-03 21:31:24 +00:00
Lasse Öörni
d867b3da2e Fixed error in documentation. 2013-02-03 13:22:43 +00:00
Lasse Öörni
9d82a32c9e Added constraint & collision shape type "none" as default value to avoid unnecessary creation of shapes on scene load, before proper attribute values are deserialized. Do not create shape/constraint in OnNodeSet(), as the type is always "none" at that time.
Reactivate a rigid body when any constraint is removed from it.
2013-02-01 13:37:31 +00:00
Lasse Öörni
eeacbe62ca Fixed the C++ quickstart example in the docs. 2013-01-24 14:08:33 +00:00
Lasse Öörni
ed272d2aa7 Fixed sphere particle emitter always having zero radius. 2013-01-16 14:26:01 +00:00
Lasse Öörni
fcd9e37b61 Updated version history. 2013-01-13 22:44:51 +00:00
Lasse Öörni
f5e2be65c1 Added note about the ElapsedTime built-in shader parameter to documentation. 2013-01-13 20:06:21 +00:00
Lasse Öörni
b51fd39bcc Applied CustomGeometry script API patch from weitjong. 2013-01-13 12:16:41 +00:00
Lasse Öörni
570c48c5cf Allow to use RGB normal maps. Different material techniques are used for xGxR normal maps. 2013-01-09 11:00:43 +00:00
Lasse Öörni
0891aa62dc Applied DebugHud app stats patch from weitjong. 2013-01-08 07:59:55 +00:00
Lasse Öörni
1d745f9951 Moved script application reload inside Urho3D.cpp to avoid issues with unwanted application script startup. 2013-01-05 11:26:02 +00:00
Lasse Öörni
53adf6fc5b Expose UnsubscribeFromAllEventsExcept() to script. 2013-01-04 20:06:12 +00:00
Lasse Öörni
2c96dff225 Execute procedural Start() & Stop() functions automatically when a ScriptFile is loaded and unloaded. This allows live-reload of a whole script application.
Do not recreate Console & DebugHud if they already exist.
2013-01-04 19:24:43 +00:00
Lasse Öörni
9d759300fe Added possibility to disable the litbase pass optimization in RenderPath, if an ambient-only pass is needed. 2013-01-02 23:38:39 +00:00
Lasse Öörni
d733091eb2 Fixed viewport calculation for rendertargets defined in the render path. If a target uses the RT divisor mode, scale the viewport, otherwise use full texture size (eg. for the bloom intermediate textures)
Undefined (zero) rendertarget size no longer uses the destination size automatically, instead the divisor needs to be specified.
2013-01-02 21:24:25 +00:00
Lasse Öörni
44ca4d92b6 Cleaned up documentation. 2013-01-02 17:24:11 +00:00
Lasse Öörni
f7f820b3eb Added RenderPath documentation. 2013-01-02 17:22:08 +00:00
Lasse Öörni
09b716f0b8 Added scripting interface for RenderPath. 2013-01-02 16:05:55 +00:00
Lasse Öörni
2a4fbcdf54 Removed the old postprocess system. Instead renderpath fragments can be appended.
Implemented missing quad rendering command in renderpath.
2013-01-01 23:05:44 +00:00
Lasse Öörni
a40fead7dc Updated license for the new year. 2013-01-01 11:46:18 +00:00
Lasse Öörni
ffe65cf885 Transition to xml-defined rendering path. Pass names changed. Likely caused a large number of regressions to postprocessing, texture rendering & multisampling, which need to be sorted out. The renderpath feature also needs to be documented. 2012-12-31 15:40:07 +00:00
Lasse Öörni
1ce5a632bd Removed the PassType enum in favor of hashed pass names, to prepare for freeform/redefinable render pipeline. 2012-12-27 18:11:32 +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
7c61b098bf Fixed forward lit spotlight shadows on OpenGL.
Removed the NVIDIA-specific INTZ depth path so that shaders don't need special cases for reading depth.
2012-12-25 17:55:10 +00:00
Lasse Öörni
5511528fac Added CMake .bat file for Visual Studio 2012. 2012-12-24 15:28:01 +00:00
Lasse Öörni
14b78585fc Added CustomGeometry component, which is similar to OGRE ManualObject.
Support also non-indexed geometry for raycasts, occlusion and decals.
2012-12-24 11:56:30 +00:00
Lasse Öörni
21811bc13f Explicitly mention that DirectX June 2010 SDK needs to be installed.
Moved the Log timestamp functionality to Time subsystem, so that it can also be called by the user.
2012-12-22 16:42:01 +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
21a2fee4a7 Added script API Object::SendEvent() patch from Magic.Lixin. 2012-12-17 11:00:41 +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
dde21f587e Added WeakHandle to script, which is a WeakPtr<Object>.
Exposed strong & weak refcount of all classes derived from RefCounted to script.
2012-10-23 17:29:41 +00:00
Lasse Öörni
7d930b62f8 Added missing specular mapped material techniques.
Added generate tangents option to editor.
Default light specular intensity to 1.0.
Fixed generation of specular mapped materials in AssetImporter.
Fixed documentation regarding specular maps (deferred does not support colored specular, forward & light pre-pass do.)
2012-10-21 13:52:24 +00:00
Lasse Öörni
f4f538fcd0 Additions to documentation. 2012-10-20 16:54:09 +00:00
Lasse Öörni
fbef191c6b Removed the NewCollision parameter of collision events. Instead separate CollisionStart & CollisionEnd events are sent when a collision begins or ends.
Added a buoyancy volume into the Terrain script as an example of a trigger area, use L key to toggle.
2012-10-18 20:30:05 +00:00
Lasse Öörni
88896fe805 Added GetCollidingBodies() function to RigidBody which returns collisions from last physics step.
The iterator versions of HashMap & HashSet Erase() return an iterator to next element.
2012-10-17 18:54:48 +00:00
Lasse Öörni
f8aa92cbcd Improved skeletal animation documentation. 2012-10-04 14:31:31 +00:00
Lasse Öörni
c7fe3c37bd Added sound listener component whose position is automatically taken into account by Audio subsystem.
Removed setting listener position/rotation manually.
Removed unnecessary includes.
2012-10-02 14:46:09 +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
bfb76725b6 Additions to documentation. 2012-09-04 21:45:19 +00:00
Lasse Öörni
415c2a28ce Fixed missing mention of the UI library on the OverallStructure page. 2012-09-04 21:33:51 +00:00
Lasse Öörni
f1f58a8bed Use 'O' key to toggle orthographic camera also in LightTest. 2012-09-04 21:23:56 +00:00
Lasse Öörni
bb2b57552e Added note of texture format "downconversion" on OpenGL ES. 2012-09-03 07:38:12 +00:00
Lasse Öörni
0cd53cdee3 Added 16 & 32-bit texture formats. 2012-09-02 23:05:40 +00:00
Lasse Öörni
44ffd7e0b8 Disable SSE also from Bullet when necessary. 2012-09-02 17:38:26 +00:00
Lasse Öörni
575ac5b625 Removed references to Windows 2000 in the documentation. Windows XP is the minimum supported Windows OS version. 2012-09-02 13:33:16 +00:00
Lasse Öörni
a3d63cce41 Updated version history. 2012-09-01 11:24:53 +00:00
Lasse Öörni
fa69f2e174 Fixed texture unit enumeration and the environment texture sampler. Removed references to the nonexistent detail texture sampler in the documentation. 2012-08-31 22:24:59 +00:00
Lasse Öörni
9401ad8063 Removed UI serialization hacks related to the Menu & DropDownList popup element. To avoid layout problems, now it is never added as a child temporarily.
Do not abort UI layout deserialization on encountering an unknown element.
2012-08-30 20:34:17 +00:00
Lasse Öörni
053c1f3e6a Added convenience overloads for LoadLayout().
Added DropDownList selection attribute.
Removed duplicated code from UIElement.
2012-08-30 12:37:36 +00:00
Lasse Öörni
4cef5395f5 Completed the UI element refactoring. Removed hardcoded SetStyle() functions which would read UI element attributes from XML.
Added SaveLayout() function to UI.
Fixed serialization & deserialization of IntRect & IntVector2 variants.
Fixed crash when querying a BorderImage's texture in script.
2012-08-28 20:22:51 +00:00
Lasse Öörni
0a16099532 UIElement serialization / deserialization.
Fixed XML serialization of IntVector2.
2012-08-27 06:15:29 +00:00
Lasse Öörni
83e90ae61c Started work on UI element attributes. 2012-08-26 21:19:02 +00:00
Lasse Öörni
e586349114 Added UIElement::CreateChild().
Added internal flag to UI elements, meaning a child element has been programmatically created (for example the slider of a scroll bar.)
2012-08-25 09:22:43 +00:00
Lasse Öörni
948590623d Added IntVector2 Variant type. 2012-08-24 18:52:05 +00:00
Lasse Öörni
683aa3c5fb Added script bindings for Variant IntRect operations. 2012-08-23 22:13:42 +00:00
Lasse Öörni
5aeebaa3bf Added Rect & IntRect Variant types.
Added Rect::Equals().
2012-08-23 21:49:50 +00:00
Lasse Öörni
7813601540 Added scene timescale attribute. 2012-08-22 19:22:13 +00:00
Lasse Öörni
26fa24ed01 Re-added support for varying shadow intensity on OpenGL ES, as the calculation is not very complex. 2012-08-21 12:41:41 +00:00
Lasse Öörni
ba890672dd Added Size(), Width() and Height() to IntRect. 2012-08-20 15:30:22 +00:00
Lasse Öörni
7c7e63f4ff Added fixes for compiling with MinGW. 2012-08-20 11:46:42 +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
5e7387b695 Added physics stresstest example. 2012-08-09 18:36:36 +00:00
Lasse Öörni
c64dfb114e Added back polygon fill mode. 2012-08-08 17:15:13 +00:00
Lasse Öörni
312ddc0242 Added repeat flag to delayed method calls.
Added possibility to remove delayed method calls selectively.
Documented delayed method calls.
2012-08-06 10:51:43 +00:00
Lasse Öörni
ea2f6e967a Added DelayedStart() script object method to work around missing child scene nodes during Start(). 2012-08-03 21:06:40 +00:00
Lasse Öörni
3d4eb6bdc8 Event refactoring. Removed the concept of targeted events and a Node forwarding a targeted event to all components, which was used only for physics node collision events. Now the node will instead send the collision event, and it can be explicitly subscribed to.
Remote node events specify a sender node instead of a receiver node. The sender connection is always available as an event parameter.
2012-08-03 09:03:02 +00:00
Lasse Öörni
3b67320a49 Added animation trigger event system.
Added ReplaceExtension() utility function to simplify filename manipulation code.
Cleaned up NinjaSnowWar script code. Added particle effect on ninja's footsteps and landing from jump.
2012-08-02 21:19:57 +00:00
Lasse Öörni
6dac86e2e7 Added option to disable log timestamps. 2012-08-01 22:27:32 +00:00
Lasse Öörni
e7935ffaf6 Documented the new attribute flags. 2012-07-30 13:37:51 +00:00
Lasse Öörni
9557eb64b4 Added note about moving triangle mesh collision shapes. 2012-07-30 12:59:21 +00:00
Lasse Öörni
481fbfa220 Added visible OS mouse cursor mode. When used with an external window, this is the only supported mode, as SDL does not control the cursor visibility of an external window. 2012-07-28 10:38:04 +00:00
Lasse Öörni
1ca858cc2a Changed ListView to use PODVector for the selections, and explicitly sort them when necessary.
Circumvented ListView selections set accessor not working by defining it as a method instead.
2012-07-27 12:06:34 +00:00
Lasse Öörni
170ee77019 To avoid confusion when to use what, and as the performance is usually better, use only HashMap & HashSet instead of Map & Set.
Optimized memory use of HashMap/Set to 16 bytes so that it can be stored inside Variant.
2012-07-26 22:22:59 +00:00
Lasse Öörni
ef12e4a769 Added contributions/bugfixes category to the credits. 2012-07-25 07:21:08 +00:00
Lasse Öörni
8fe755e7e6 Do not release resource if it has weak refs.
Exposed function to explicitly reload shaders.
Set a default resource path in the editor (Bin/Data/) so that scene/model import works even without setting a resource path.
2012-07-22 16:46:32 +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
073347c950 AABB-test physics geometry before adding it to the debug renderer.
Never debug draw heightfields, as it hugely slows down execution.
2012-07-22 11:23:00 +00:00
Lasse Öörni
21c6bfd098 New stone texture.
Save each example scene with an unique name.
Update terrain batch LOD always in the main thread to avoid overhead of firing threaded work items, if there is no more CPU-consuming geometry updates (such as skinning) to be done.
2012-07-21 14:44:53 +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
ec8394b3de Initial terrain LOD. No stitching yet.
Limit DebugRenderer total vertices to prevent possible crash.
Perform coarse culling in DebugRenderer to avoid rendering lines outside the view.
2012-07-19 13:28:05 +00:00
Lasse Öörni
478a5af9d1 Allow defining depth bias for materials.
Center decal frustum on the decal world position.
Use material depth bias for decals instead of applying the bias to decal geometry.
2012-07-19 09:34:11 +00:00
Lasse Öörni
42b9cbc158 Cleaned up terrain code.
Updated script API documentation.
2012-07-18 23:19:52 +00:00
Lasse Öörni
83487ac88f Further ShaderParser optimization. 2012-07-14 11:58:25 +00:00
Lasse Öörni
2d8f47618f Changed controls in TestScene.as & TestSceneOld.as to not require the middle mouse button for adding decals. 2012-07-11 18:16:02 +00:00
Lasse Öörni
debcc38bb0 Allow configuring DecalSet max. vertices and indices separately.
Serialize DecalSet geometry as a byte buffer for reduced file size.
2012-07-11 16:42:08 +00:00
Lasse Öörni
92510672f7 Serialize also skinned decals.
Fixed flicker of billboards & decals on first frame after loading.
2012-07-09 21:27:47 +00:00
Lasse Öörni
4ea24a7a03 Fixed example scripts. 2012-07-08 21:27:32 +00:00
Lasse Öörni
296e36a75b Calculate tangents for decals. 2012-07-08 21:17:45 +00:00
Lasse Öörni
06371a62ed Wrap decal around static geometry.
Changed OcclusionBuffer clipping to produce less degenerate triangles.
Exposed more Frustum functions to script.
Moved StaticModel software LOD (raycast / occlusion) determination into a function.
2012-07-08 15:49:48 +00:00
Lasse Öörni
91c7374e28 Started work on decals.
Geometry can now define a non-indexed draw range.
Do not queue empty batches (with empty draw range) for rendering.
2012-07-07 23:54:29 +00:00
Lasse Öörni
d18baaff87 Reverted back to 4 sample shadow mapping on OpenGL ES, but limited directional light cascades to 2. 2012-07-07 13:43:40 +00:00
Lasse Öörni
bb821f2a3c Reverted the split fade optimization. 2012-07-07 10:58:13 +00:00
Lasse Öörni
e8d549ef7e Shader refactoring. Renamed the lit object ubershader as LitSolid; it now handles also deferred rendering.
Reduced max. vertex light count to 4 to prevent excessive shader permutations.
2012-07-06 18:35:13 +00:00
Lasse Öörni
38fd976aa9 Fixed potential infinite loop when setting morphs.
Added script API function to query morph names.
Unified AssetImporter & OgreImporter command line options regarding animations.
2012-07-05 10:57:51 +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
3833c24ab3 Fixed smoothing of the cone model.
Added menu in the editor for instantiating the primitive shapes.
2012-07-04 17:03:27 +00:00
Lasse Öörni
85e2ab1589 Added joystick control to NinjaSnowWar. 2012-07-04 08:05:35 +00:00
Lasse Öörni
3f2e63b952 Removed the model build step from CMakeLists.txt. Instead added binary models directly to the repository. 2012-07-03 16:22:36 +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
c9bdf9eb35 Added function to redetect joysticks. 2012-07-02 10:26:01 +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
06505eac99 Fixed documentation. 2012-06-29 07:12:37 +00:00
Lasse Öörni
e994485472 Added a macro for the different main() implementations. 2012-06-28 20:31:25 +00:00
Lasse Öörni
762da4aec0 Updated the quickstart documentation. 2012-06-28 19:44:16 +00:00
Lasse Öörni
18e8cb6334 Removed need for anisotropic filter OpenGL extension.
Removed redundant hires shadow map support flag.
2012-06-28 19:17:59 +00:00
Lasse Öörni
7d39dd0c58 Joystick events and joystick button pressed state. 2012-06-28 07:49:23 +00:00
Lasse Öörni
4a463176ab Added joystick support.
Cleaned up reading touch input.
2012-06-27 23:03:25 +00:00
Lasse Öörni
d23803e285 Added memory debug dump (MSVC debug mode only.) 2012-06-26 05:58:48 +00:00
Lasse Öörni
613e3e94f9 Allocate nested script execution contexts on demand. 2012-06-25 18:01:11 +00:00
Lasse Öörni
5507b006be Shader load/compile refactoring. Removed shader source code from the SourceAssets directory and moved to Bin/CoreData/Shaders.
Changed ShaderCompiler command line options.
Changed FileSystem::SystemRun() to use CreateProcess() and to hide the window of the spawned program.
Removed GLShaderProcessor.
2012-06-24 00:11:43 +00:00
Lasse Öörni
2b5e656d79 Documentation update. 2012-06-19 20:30:11 +00:00
Lasse Öörni
d7d599be7b Added loading of ETC1 compressed textures on mobile devices. These need to be stored inside .ktx files.
Removed unneeded texture.
2012-06-16 23:59:54 +00:00
Lasse Öörni
178b6e351e Added documentation on the application activation state and mobile devices. 2012-06-16 11:02:27 +00:00
Lasse Öörni
ba7049bb30 Use empty default name for cloned material in the script API. 2012-06-14 21:16:26 +00:00
Lasse Öörni
e1a1c974e5 Initial iOS support.
Do not use glPolygonOffset() constant bias due to its inconsistency. Instead offset the projection matrix as necessary.
Do not use multiple glUniform calls to set an array of transposed matrices, as it is not guaranteed to work. Instead transpose all matrices first, then set them in one call.
2012-06-09 22:05:14 +00:00
Lasse Öörni
2c54f016c8 Applied SDL Android RWops patch. 2012-06-05 07:14:08 +00:00
Lasse Öörni
5d55c0959d Re-added the alpha masking hint to give priority to fully opaque materials. 2012-06-03 23:30:58 +00:00
Lasse Öörni
6e86187926 Documentation update. 2012-06-03 19:14:18 +00:00
Lasse Öörni
5ed1f86b27 Added note about the stencil buffer on OpenGL ES 2. 2012-06-03 11:38:34 +00:00
Lasse Öörni
02738d055e Renamed Android package and added instructions on how to replace it with application-specific package name.
Updated documentation.
2012-06-03 11:35:26 +00:00
Lasse Öörni
4070e61e78 Added option to automatically pause updates & audio when minimized. 2012-05-30 23:17:16 +00:00
Lasse Öörni
3e7882093a Disabled all stencil operations on OpenGL ES for now, as the OES packed depth stencil isn't tested for or used yet.
Use fixed vertex attribute locations on OpenGL.
Always transpose OpenGL matrix uniforms manually.
Workaround failed draw call after drawing billboards on OpenGL ES by transforming billboards with an identity model matrix.
Ensure finger touch ID's are positive.
Improved touch controls in NinjaSnowWar.
2012-05-27 16:39:21 +00:00
Lasse Öörni
0706ae397f Touch input on Android.
Run NinjaSnowWar by default on Android.
Rudimentary touch controls (virtual on-screen joystick) in NinjaSnowWar.
Improved OpenGL ES depth bias.
Support GetUserDocumentsDir() on Android (return the getFilesDir() path.)
Fixed OpenGL ES mode erroneously attempting to use shadowed point lights.
Added .bat file to copy Data & CoreData directories as Android assets.
2012-05-27 00:27:23 +00:00
Lasse Öörni
3bf10d2670 Clarified Android build instructions. 2012-05-25 06:48:35 +00:00
Lasse Öörni
92facb3c3b Added Android asset support and basic build instructions. 2012-05-24 22:16:21 +00:00
Lasse Öörni
5bb39d77c4 Added function to return a runtime platform identifier string. 2012-05-20 11:29:18 +00:00
Lasse Öörni
354f04e6f2 Added Texture::IsCompressed().
OpenGL ES fixes.
2012-05-19 12:17:58 +00:00
Lasse Öörni
f3f724920c Removed unnecessary include from WorkQueue.
Documentation fixes.
2012-05-16 19:26:07 +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
5001c19663 Documentation fixes & additions. 2012-05-09 22:29:25 +00:00
Lasse Öörni
d9f9505ae4 Fixed possibility of mistaken procedural event handling if attempted from a script object that does not belong to a ScriptInstance. 2012-05-09 07:21:04 +00:00
Lasse Öörni
0ca75a4d2d Updated documentation. 2012-05-07 19:46:00 +00:00
Lasse Öörni
4666520d0b Improved ragdoll stability in TestScene.
Create ragdolls when hit by the boxes (both TestScene & TestSceneOld.)
Fixed component ID clash when creating ragdolls in networked TestScene.
Constraints can specify rotation frame directly. Specifying the axis is still provided for convenience, but does not give exact control over the orientation.
Constraint adjusts static world position automatically when the own body position is edited.
Optimized away redundant Constraint recreation when deserializing attributes.
Added RemoveComponent by component type to Node.
Show also write-only properties in the generated scripting API documentation.
2012-05-07 19:44:43 +00:00
Lasse Öörni
70c58f43d9 Added SetWorldPosition() to Constraint.
Initial ragdoll test in TestScene.
2012-05-07 07:30:40 +00:00
Lasse Öörni
9f331e56db Changed Constraint API to specify the other body position / axis explicitly, and to specify limits as Vector2.
Fixed bugs in assigning parented RigidBody transforms after simulation step.
Optimized Constraint SetPosition() / SetAxis() to not recreate the constraint.
2012-05-07 00:15:20 +00:00
Lasse Öörni
b01fc7b60b Added rigid body queries to PhysicsWorld. 2012-05-06 20:29:03 +00:00
Lasse Öörni
011c8e8e8f Updated version history for impending new release. 2012-05-06 12:38:07 +00:00
Lasse Öörni
8cdc6f69d2 Properly clean up event handlers referring to a deleted object.
Added cone twist constraint.
Added angular motion limits to the slider constraint.
Improved batch group hashing.
2012-05-06 11:59:47 +00:00
Lasse Öörni
4335295b87 Added slider constraint. 2012-05-05 23:10:45 +00:00
Lasse Öörni
5c4904288a Fixed hinge constraint breaking.
Fixed constraint not being created if rigid body did not initially exist.
Changed constraint position & axis to be serialized in world space for reliability.
2012-05-02 22:13:09 +00:00
Lasse Öörni
ef421ef32d Initial Bullet constraint implementation.
Changed DrawDebugGeometry() to be a virtual function in Component.
2012-05-01 19:26:29 +00:00
Lasse Öörni
31e027b354 Maximum amount of sorted instances can be configured in Renderer. By default 1000.
Moved the NetworkState pointer back to Serializable, as there was not much practical benefit.
2012-04-29 16:20:23 +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
e6fe0d6cf0 Removed convenience GetWorldTransform() from Component to make it explicit that an indirection to the parent node is being made.
Added inverse transform caching to Zone.
Added light nullcheck to Batch.
2012-04-29 12:01:37 +00:00
Lasse Öörni
d8eb85b9b4 Added SphereCast function to PhysicsWorld.
Applied kNet bugfix.
Restored custom kNet UDP flow control mechanism.
2012-04-26 20:03:54 +00:00
Lasse Öörni
40709f2d63 Added GetCompressedTextureSupport() to Graphics. Always true on Direct3D9. 2012-04-25 21:23:37 +00:00
Lasse Öörni
2f4165bf0f Added Squish library for DXT decompression. 2012-04-25 21:07:35 +00:00
Lasse Öörni
5bc2c61d88 Reorganized Node, Component, Drawable & Camera member variables for more optimal access.
Several Camera getter functions changed to const.
2012-04-23 18:41:38 +00:00
Lasse Öörni
5640824c9a Fixed Camera not properly notified of node transform changes.
Added caching of camera view matrix.
2012-04-23 17:47:29 +00:00
Lasse Öörni
91f6f87472 Explicitly mark changed nodes to avoid going through the whole scene in PrepareNetworkUpdate(). 2012-04-22 18:48:09 +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
e0571d46eb Removed kNet message priority sorting to improve CPU performance when sending a high volume of network messages. 2012-04-20 22:55:50 +00:00
Lasse Öörni
66a860144a Added separate Equals() function to Vector & Quaternion classes to perform comparison with epsilon. Equality operator does not use epsilon. This optimizes network sync somewhat. 2012-04-18 11:05:57 +00:00
Lasse Öörni
08ac95dbf7 Fixed continuous collision detection to work with the compound shape.
Added CCD radius & motion threshold attributes to RigidBody. 
Use CCD for NinjaSnowWar snowballs to prevent their tunneling through the ground.
2012-04-16 21:45:40 +00:00
Lasse Öörni
51c9160eae Removed CCD Radius parameter for now as continuous collision detection is not supported for all collision shapes.
Changed the way RigidBody attributes are applied to reduce unnecessary re-adding of the body to the simulation world during deserialization.
2012-04-15 16:47:33 +00:00
Lasse Öörni
9ead094d5a Removed the physics world maximum timestep, as it is already governed by the Engine's minimum FPS. 2012-04-15 13:19:42 +00:00
Lasse Öörni
32fa940130 Handle world transform update of parented RigidBodies correctly.
Updated physics documentation.
2012-04-15 11:42:02 +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
a85817a355 Reverted to joint world space positioning for reliability.
Added debug geometry visualization for joints.
Added nullchecks to prevent crash by calling DrawDebugGeometry() from script with a null debug renderer pointer.
2012-04-06 17:23:45 +00:00
Lasse Öörni
566489e1fa Updated the script API documentation. 2012-04-01 18:09:52 +00:00
Lasse Öörni
ff950d7dca Refactored joint attributes. Now the joint should be created into a node with a rigidbody, and only the connected body needs to be specified. 2012-03-30 23:02:33 +00:00
Lasse Öörni
bea4b8d60b Allow per-rigidbody disabling of gravity. 2012-03-25 12:57:45 +00:00
Lasse Öörni
c0273f35ca Removed deprecated SuppressNextChar() function. 2012-03-23 11:45:46 +00:00
Lasse Öörni
72794673d1 Fixed crash if a window message was received before the Input subsystem had initialized itself.
Fixed profiler output indent off by one.
Updated script API.
2012-03-11 13:49:01 +00:00
Lasse Öörni
9d15b80fc4 Audio::IsInterpolated() -> Audio::GetInterpolation().
Fixed comments in the audio library.
2012-02-28 22:58:25 +00:00
Lasse Öörni
26e2ebca26 Fixed enemy motion bugs in networked NinjaSnowWar.
Added possibility to disable physics interpolation. This is useful on a network server to ensure clients do not receive interpolated (and possibly non-physical) node transforms.
Changed default network update FPS to 30 (half of the default physics FPS.)
2012-02-28 21:03:42 +00:00
Lasse Öörni
cd00810139 Updated docs for upcoming release. 2012-02-28 18:51:31 +00:00
Lasse Öörni
f83b968576 To reduce Linux / NVIDIA performance issues, use another FBO for shadow rendering. Commit FBO changes only at SetDepthStencil(). 2012-02-28 00:24:35 +00:00
Lasse Öörni
6014f87a0f Added mention to only install libgl1-mesa-dev if OpenGL headers/libs do not already exist. 2012-02-27 08:09:11 +00:00
Lasse Öörni
911f9e4c5b Removed the "flush GPU" feature as it was causing erratic timing. The downside is increased input lag when vsync is on.
Increased NinjaSnowWar physics FPS to 100Hz for less likely snowball tunnelling.
Set the player yaw from mouse movement each frame also in singleplayer NinjaSnowWar.
When a physical Node's rotation only changes, do not force the rendering position automatically as the new physics position.
2012-02-26 16:00:52 +00:00
Lasse Öörni
ff9df846d1 Fixed physics transform interpolation when physics timestep is lower than framerate.
Use high resolution timer for frame timestep to avoid jitter at vsync frequency.
Rewrote frame limiting.
Elapsed time API changed.
2012-02-26 13:07:52 +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
c64e0cd165 Default to RelWithDebInfo build on GCC. Removed Urho3D executable name debug postfix due to CMake limitations. Copy the executables to Bin directory similarly on both MSVC & GCC. 2012-02-25 12:30:42 +00:00
Lasse Öörni
50226cfdb0 Started work toward Unicode compatibility. 2012-02-24 00:05:06 +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
7ec5ec4f6e Added FileWatcher class (for now Windows only) & live resource reloading. 2012-02-22 21:27:16 +00:00
Lasse Öörni
4e67907b8a Updated to AngelScript 2.22.2. 2012-02-14 21:57:12 +00:00
Lasse Öörni
9b89a1540d Added resource name sanitation to prevent creation of duplicate resources. 2012-01-15 09:55:50 +00:00
Lasse Öörni
0cc1219607 Added note on selecting 32-bit architecture with Xcode. 2012-01-08 22:17:49 +00:00
Lasse Öörni
667258b618 Updated to newest kNet. 2012-01-02 11:52:01 +00:00
Lasse Öörni
a5681746e1 Added brief documentation on skeletal animation.
Added missing morphs attribute to AnimatedModel.
2012-01-01 17:09:14 +00:00
Lasse Öörni
5dbf2b81f9 Added error logging for resource hash collision.
Clear both color & depth at the same time for light prepass rendering.
2012-01-01 15:22:43 +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
88645ee31b Updated script API. 2011-12-31 21:03:31 +00:00
Lasse Öörni
9e871c1987 Removed automatic viewport reset on setting rendertarget to eliminate redundant API calls. However Graphics::ResetRenderTargets() resets the viewport. 2011-12-31 15:05:08 +00:00
Lasse Öörni
d34a73bfb9 Added full deferred rendering in addition to light pre-pass.
Added missing vertex colored light pre-pass material shader permutation.
2011-12-31 14:20:29 +00:00
Lasse Öörni
777810d84f Updated to Open Asset Import Library rev. 1102. 2011-12-30 19:32:45 +00:00
Lasse Öörni
ccbfe5babc Further documentation fixes. 2011-12-28 15:10:46 +00:00
Lasse Öörni
700b9c6a02 Post-process documentation fix. 2011-12-28 14:38:23 +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
7075513957 Cleaned up bloom shader code.
Split SampleOffsets shader parameter to GBufferInvSize and ShadowMapInvSize parameters.
Set Offsets & InvSize parameters for user-defined rendertargets during postprocessing.
Fixed bug on some NVIDIA drivers caused by using tex2Dlod on the hardware depth buffer.
2011-12-28 13:17:21 +00:00
Lasse Öörni
a1c70a3476 Added bloom post-process effect.
Added global shader parameters to PostProcess.
Added possibility to specify texture units by number instead of name in materials and postprocesses.
2011-12-28 01:43:48 +00:00
Lasse Öörni
9fc3d48c12 Changed Viewport to be a reference-counted object.
Changed the Viewport API to allow easier manipulation of the post-process chain.
Added PostProcess::Clone().
2011-12-27 12:57:03 +00:00
Lasse Öörni
5aa1a38a98 Added documentation for post-processing. 2011-12-26 23:48:56 +00:00
Lasse Öörni
55ce257a9c Initial postprocessing implementation. Reimplemented the FXAA edge filter using it. 2011-12-26 01:07:37 +00:00
Lasse Öörni
510c606b3d Removed the redundant GetString() functions from XMLElement. 2011-12-24 20:04:52 +00:00
Lasse Öörni
3a319a2231 Optimized parsing of numbers from strings. 2011-12-24 03:04:35 +00:00
Lasse Öörni
762085c443 Updated script API. 2011-12-24 00:25:02 +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
86608f6ba5 Changed PostProcess class to not allocate rendertargets beforehand. 2011-12-23 00:35:42 +00:00
Lasse Öörni
6845f056a5 Refactored NinjaSnowWar example to load the scene and objects from files instead of creating them programmatically.
Fixed crash in ParticleEmitter.
Fixed network client trying to load scene file directly instead of going through the resource system.
Fixed AnimatedModel to create bones manually if they are missing after a scene or object load.
Changed TestScene & TestSceneOld to write the scene into the Scenes subdirectory.
2011-12-22 21:18:39 +00:00
Lasse Öörni
97f1fbd7e1 Added relative scale flag to ParticleEmitter XML description file format.
Fixed ParticleEmitter documentation.
2011-12-20 23:42:47 +00:00
Lasse Öörni
75beda5f3a Removed the "unculled drawable" mechanism. Instead added occludee-flag to Drawable.
Added missing attributes to ParticleEmitter.
2011-12-20 23:25:22 +00:00
Lasse Öörni
75096fe6f9 Refactored screen-size rendertarget allocation in preparation for postprocessing.
Removed the "size 0,0 follows window size" mechanism from Texture2D.
2011-12-20 22:24:09 +00:00
Lasse Öörni
d449b946bd Additions to the PostProcess API.
Exposed PostProcess to script.
Code cleanup.
2011-12-19 23:44:28 +00:00
Lasse Öörni
a341b9ea4f Cleaned up Menu code.
Added Node::Clone().
2011-12-18 17:45:11 +00:00
Lasse Öörni
f58e2595bf Rewrite node & component IDs when instantiating content from file.
Added choice to instantiate content as either replicated or local.
Fixed popup menu & editor hierarchy window update bugs.
2011-12-18 13:44:03 +00:00
Lasse Öörni
7f2f278c58 Added Scene::Instantiate() & Scene::InstantiateXML(), which load a partial scene from binary or XML.
Added editor functions Load node & Save node, which use the above functionality.
Fixed threading crash with multiple shadowed directional lights.
2011-12-18 00:57:50 +00:00
Lasse Öörni
1e1496e7d4 Refactored setting variants from strings.
Refactored nodes and components to write their type & ID when saving, instead of the parent node doing that.
Do not save attribute types into the XML format scene, as they are known.
When loading a node hierarchy, store also the root node reference into the SceneResolver.
Fixed bugs in async binary scene loading.
Removed the redundant .dat file extension filter from the editor. Instead .bin should be always used for binary scenes.
2011-12-17 18:37:23 +00:00
Lasse Öörni
a3c6e580c3 Added Graphics::GetFloatFormat(). 2011-12-15 21:06:00 +00:00
Lasse Öörni
35c21f06d7 Removed the fallback shadow code, as GPUs that actually need it are also too low-performance to render shadows acceptably. 2011-12-13 22:22:46 +00:00
Lasse Öörni
a207ec96c1 Updated script API documentation. 2011-12-13 21:32:15 +00:00
Lasse Öörni
9e4a9362cb Node::SetParent() retains the world transform.
Added GetDerivedComponent() to Node.
Added SetWorldPosition() and related functions to Node.
Added unparent command (Ctrl+U) to the editor.
2011-12-12 22:12:05 +00:00
Lasse Öörni
51cf76b99a Renamed SetLinkedDepthBuffer() -> SetLinkedDepthStencil(). 2011-12-10 16:36:59 +00:00
Lasse Öörni
d892a120e7 Reverted the OpenGL viewport reset logic. 2011-12-10 15:57:48 +00:00
Lasse Öörni
8c14956ebe Documentation update. 2011-12-10 15:35:45 +00:00
Lasse Öörni
c334b471e0 Exposed texture formats to script.
Fixed directional lights in light pre-pass mode when using the same camera for multiple views with different aspect ratios.
2011-12-09 23:57:10 +00:00
Lasse Öörni
f564e2bc83 Documentation update. 2011-12-09 21:19:39 +00:00
Lasse Öörni
f953254296 Renamed "edgefilter" command line parameter to "fxaa" for less typing. 2011-12-08 23:31:47 +00:00
Lasse Öörni
b2fae0ccb4 Added FXAA edge filter.
Updated readme for upcoming release.
2011-12-08 23:19:04 +00:00
Lasse Öörni
b9ffb1fc2d Documentation tweaks. 2011-12-06 22:07:32 +00:00
Lasse Öörni
c4e569879d Restored the optional lit base pass optimization, but with the limitation of no ambient gradient.
Removed unneeded GLSL shader permutations.
2011-12-06 21:36:03 +00:00
Lasse Öörni
31b2a692d5 Fixed multithreading documentation. 2011-12-06 14:57:07 +00:00
Lasse Öörni
8f882f8225 Rewrote the zone ambient color gradient system. Now zones only define one ambient color, but look for neighbor zones' ambient colors when gradient mode is enabled.
Fixed missing script bindings to the zone ambient gradient & camera override flags.
Added a default bounding box size for newly created zones.
Added documentation on zones.
2011-12-06 14:48:53 +00:00
Lasse Öörni
738a159c59 Small documentation tweaks. 2011-12-05 22:41:26 +00:00
Lasse Öörni
23f4ba9710 Added more detailed documentation on light pre-pass rendering. 2011-12-05 22:10:05 +00:00
Lasse Öörni
644c37a099 Mark light masks to G-buffer stencil for light culling.
Fixed OpenGL forward rendering.
Documentation fixes.
2011-12-03 17:51:18 +00:00
Lasse Öörni
f9bfd4948f Shader refactoring.
Removed ambient + lit pass combining for less shader permutations, and to prime the Z-buffer with a lightweight pass in case there is a large amount of overdraw.
Moved ambient light calculation to the ambient pass vertex shader.
Added render mode toggle to the editor settings.
Note: OpenGL rendering is currently broken.
2011-12-03 14:06:35 +00:00
Lasse Öörni
fefa7bf6cd Initial light pre-pass rendering. Lighting not rendered yet. 2011-12-01 23:57:16 +00:00
Lasse Öörni
50284fe9b6 Added extra keys to LightTest. 2011-11-29 23:53:12 +00:00
Lasse Öörni
abf00cafa9 Merged pixel shader uniforms.
Script code cleanup.
Added LightTest script.
2011-11-29 23:15:34 +00:00
Lasse Öörni
9a080ee900 Cleaned up comments. Removed Object::CreateObject() as unnecessary. 2011-11-28 19:00:28 +00:00
Lasse Öörni
0be96b3fca Updated documents. 2011-11-28 18:05:15 +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
b1ba025970 Fixed hyperthreading detection again.
Send frame update events in Engine::Update(), not in Timer::BeginFrame().
2011-11-27 13:40:40 +00:00
Lasse Öörni
1fbbf5f2cd Limit the amount of worker threads to half the available CPU cores. 2011-11-26 20:00:29 +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
a51afb0631 Initial vertex lighting support. 2011-11-21 00:17:52 +00:00
Lasse Öörni
a48c7ccdfb Migrated to new scriptarray add-on. 2011-11-19 13:14:15 +00:00
Lasse Öörni
5cf7e09324 Added Octree raycast that returns only a single drawable result.
Fixed conditions in raycast code.
2011-11-18 00:16:01 +00:00
Lasse Öörni
75c33d8b5c Changed the global script property arguments to GetArguments() function, as it performs an expensive vector to array conversion on each call. 2011-11-17 18:34:49 +00:00
Lasse Öörni
3313a7a66b Updated script API. 2011-11-12 21:53:41 +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
d470af37cb Added command line option to disable worker threads. 2011-11-04 08:44:54 +00:00
Lasse Öörni
d5c42e8c2c Added Node::LookAt().
Added Quaternion::FromAxes().
2011-10-25 22:04:11 +00:00
Lasse Öörni
b60a806058 Updated changelog in the docs as well. 2011-10-23 21:14:46 +00:00
Lasse Öörni
6e51dffdeb Updated readme.
Allow to switch force SM2 / force fallback modes at runtime.
2011-10-23 18:18:47 +00:00
Lasse Öörni
35e58c42f9 Added select/deselect all in the editor. 2011-10-23 16:28:28 +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
4f9f83eaab Made the move mode arrows smaller to match the scaling mode axes.
Corrected documentation about fallback mode shadow filtering.
2011-10-21 20:05:57 +00:00
Lasse Öörni
4ca9035ba5 Reimplemented the MSVC random number generator to produce same random number output on all platforms. 2011-10-21 19:12:20 +00:00
Lasse Öörni
2b57762508 Added zone property for Drawables in the script API where applicable.
Removed the viewmask attribute from Zone as it is not currently used.
2011-10-21 07:13:44 +00:00
Lasse Öörni
15e8c14623 Separated SetIntensitySortValue() into two separate functions.
Use the drawable's bounding box in light sort value calculations, instead of just the bounding box center.
Added Rect::Clip().
2011-10-19 23:03:36 +00:00
Lasse Öörni
eba23029c0 Fixed maxLights not exposed to script.
Added maxLights setting to TestSceneOld animated models as a test.
Improved drawable light sorting.
2011-10-19 07:27:36 +00:00
Lasse Öörni
63f23313d6 Sort also the postalpha pass back to front. 2011-10-18 06:36:07 +00:00
Lasse Öörni
7f7e8b970d Added subgeometry centers to the model format for proper sorting of transparent geometries. 2011-10-17 21:59:47 +00:00
Lasse Öörni
7be9585861 Fixed erroneous use of local axis movement when more than one node selected.
Split the extra (custom) rendering pass into prealpha and postalpha.
2011-10-17 20:59:13 +00:00
Lasse Öörni
0e6b9508b9 Gizmo improvements.
Reduced node transform edit related code duplication in the editor.
Exposed Plane class to script.
2011-10-17 18:55:55 +00:00
Lasse Öörni
b11b0f8de1 Initial gizmo-based node transform editing.
Fixed material assignments in the axes model.
Possibility to add unculled drawables to the octree.
2011-10-16 23:59:53 +00:00
Lasse Öörni
4a34382798 Fixed clicking on UI elements clearing the scene node selection in the editor. 2011-10-16 17:52:27 +00:00
Lasse Öörni
a32f0f1c26 Fixed rotation of the axes model.
Added ray-frustum intersection test.
Added accurate raycasts for point and spot lights. Directional light now never returns a raycast result, as it has an "infinite" bounding box.
Added better debug visualization of a point light.
Reorganization of the editor script code.
2011-10-16 14:53:14 +00:00
Lasse Öörni
bad42bcc5f Take node parenting into account when moving nodes in the editor.
Added LocalToWorld() & WorldToLocal() functions to Node.
2011-10-15 18:37:55 +00:00
Lasse Öörni
83dbac20fc Fixed Camera's view override flags not exposed to script. 2011-10-15 13:28:28 +00:00
Lasse Öörni
a436badf8f More documentation updates. 2011-10-14 18:43:17 +00:00
Lasse Öörni
2e32aace3c Documentation update. 2011-10-14 18:20:32 +00:00
Lasse Öörni
dd131fbd66 Added missing file.
Updated script API.
2011-10-14 17:43:54 +00:00
Lasse Öörni
4dd0c17651 Editor multi-edit & multi-delete.
Reversed node selection logic: select nodes by default, and components when Shift is held down. This is to avoid mistakenly deleting components and leaving nodes intact when intending to do a node multi-delete.
2011-10-12 22:15:38 +00:00
Lasse Öörni
58843be1fa Initial multiselection in the editor. 2011-10-12 13:17:04 +00:00
Lasse Öörni
407ffc684b Do not close the scene hierarchy or node/component edit window with ESC. 2011-10-09 17:43:59 +00:00
Lasse Öörni
d9524b79ad Added light & zone picking to editor. 2011-10-09 17:17:09 +00:00
Lasse Öörni
a9c5641371 Return to xGxR encoded normal maps and separate specular maps.
Instead of double buffered VBOs, avoid glMapBuffer & glUnmapBuffer in "discard" mode and use a CPU-side buffer instead.
Reduce UI & DebugRenderer vertex buffer size if grossly too large.
Updated documentation. Suggest AMD's Compressonator utility for normal map processing.
2011-10-07 21:30:02 +00:00
Lasse Öörni
2f74622427 Converted DebugGeometry to use a vertex buffer instead of using immediate rendering.
Removed immediate rendering.
2011-10-05 07:05:33 +00:00
Lasse Öörni
71d2e019e6 Use a vertex buffer for UI rendering instead of several immediate mode draw operations. The vertex buffer is locked and updated once per frame, instead of several smaller locks. 2011-10-04 21:49:22 +00:00
Lasse Öörni
653327dd15 Added E_NETWORKUPDATESENT event.
Added direct script access to the Controls object of Connection, instead of going through setter & getter.
Improved NinjaSnowWar controls responsiveness during low FPS, by checking for action button presses separately, and accumulating button presses for networking.
2011-10-04 16:26:19 +00:00
Lasse Öörni
4e18121be0 Updated documentation. 2011-10-04 06:50:01 +00:00
Lasse Öörni
7f09ddcb14 Simplified shader register mapping code. 2011-10-02 14:12:30 +00:00
Lasse Öörni
7d96303e39 Finalized support for overlapping Direct3D9 shader parameters, or the same shader parameters using different registers in different shaders. 2011-10-02 11:17:45 +00:00
Lasse Öörni
0e84c54306 Added shader parameter register count information in the D3D shader file format.
Added tracking of last assigned shader parameter per hardware register to D3D9Graphics. This allows reusing shader registers for different parameters in different shaders.
Removed the ElapsedTime shader parameter, as wrapping it is problematic depending on the calculations it would be used for.
Removed support for bool & int shader parameters from Graphics, as bool constants are not supported in OpenGL 2.0, and int parameters are not (at least currently) needed, and can lead to worse performance.
2011-10-01 09:28:27 +00:00
Lasse Öörni
589c0ee141 Expanded the lit base pass optimization to cover also the first spot or point light affecting a drawable.
Do not render light to stencil if camera is inside the light volume.
Added optimization for directional light shadow casters that are fully occluded by another shadow caster: do not render the lit pass for them.
Removed the alpha masking hint. Alpha test no longer gives the batch a lower priority.
2011-09-29 22:53:16 +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
f67165bcf3 Documentation fixes. 2011-09-10 20:06:37 +00:00
Lasse Öörni
fe495f6bcc Added deferred fallback mode, which renders the G-buffer in 2 passes.
Made the OpenGL extensions mandatory to unify expected functionality with Direct3D9 mode.
2011-09-10 19:28:59 +00:00
Lasse Öörni
d6a3f89393 Added low-quality (1-sample) shadow filtering option.
Refactored fallback shaders so that they are compiled as variations into the SM2 directory.
2011-09-09 20:41:56 +00:00
Lasse Öörni
514ef8966d Fixed OpenGL path.
Documentation update.
2011-09-09 07:51:13 +00:00
Lasse Öörni
292ebed51f Added initial fallback mode (no MRT, no hardware shadows.) 2011-09-08 23:12:48 +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
fc3896fe02 Added configurable instancing group minimum size and maximum triangles per instanced object. 2011-09-05 06:39:28 +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
3c0298dcf8 Updated documentation on G-buffer setup. 2011-08-29 20:00:26 +00:00
Lasse Öörni
40c8306691 Added triple buffering option. On OpenGL it is a no-op.
Removed the pass HashMap from Technique. Now it is just a static array.
2011-08-29 17:45:48 +00:00
Lasse Öörni
f0ecda9785 Fixed numerical stability in Quaternion matrix constructor.
Fixed spotlight wrong size in deferred rendering.
Removed "first light" optimization pass due to buggy interactions with alpha blending.
Fixed morphWeights property naming on AnimatedModel.
Fixed missing shader combinations.
Ported the GraphicsTest example from Urho3D 1.0.
2011-08-24 03:52:41 +00:00
Lasse Öörni
b6e09d2655 Renamed FinishUpdate() to ApplyAttributes() to be more descriptive, and to not confuse with frame updates. 2011-08-23 06:43:18 +00:00
Lasse Öörni
47eae408b5 Updated script API reference. 2011-08-22 22:25:32 +00:00
Lasse Öörni
6f5f3c252b Specify diameter instead of radius for sphere, capsule and cylinder CollisionShapes so that switching between shape types is more intuitive.
Capsule and cylinder shapes are now upright by default.
Fixed geometry offset staying if it was first set, but then zeroed after assigning the rigid body.
Fixed geometry offset not updating after the rigid body is assigned.
2011-08-22 21:35:23 +00:00
Lasse Öörni
3f7fffbf49 Some renames. CollisionGroup -> CollisionLayer, Scene::GetNodeByID() -> GetNode(), Ray::Distance() -> HitDistance().
Moved all hit distance tests to Ray.
Tundra scene physics import.
2011-08-22 20:06:27 +00:00
Lasse Öörni
0298cd3e00 Removed assumptions of root node's identity transform.
Re-added the root node transform attributes so they can be edited, though this is not recommended.
Fixed needless creation of almost similar collision meshes caused by floating point inaccuracy.
Fixed bug where parenting a node back to the root node would not be replicated correctly on the network.
2011-08-22 07:05:19 +00:00
Lasse Öörni
d39446c592 Fixed menu item name.
Added editor instructions.
2011-08-21 23:59:49 +00:00
Lasse Öörni
906b528cc5 Adding and removing of node user variables in the editor. 2011-08-21 18:57:59 +00:00
Lasse Öörni
10ad7a3dd2 Added phantom attribute to CollisionShape. Phantom shapes create collision events, but do not generate contact joints to the physics simulation.
Fixed opening resources externally in the editor.
2011-08-21 12:39:28 +00:00
Lasse Öörni
23d51b853e Pick resource functionality in editor.
Editor script code cleanup.
Added missing functions to the script API.
2011-08-21 10:06:52 +00:00
Lasse Öörni
3576a81993 Initial node/component attribute editing.
Attributes reorganized for editing. Accessor attributes used more for verifying correct value ranges.
More editor settings, including rendering quality.
PhysicsWorld raycast returns CollisionShapes instead of Nodes.
Fixed LineEdit cursor not showing when at text start.
Script API fixes.
2011-08-21 08:15:21 +00:00
Lasse Öörni
d0ab5fb7d6 Disabled shader branching from lighting calculations as on some GPUs it has a dramatic negative performance impact.
Added -noflush command line option to disable GPU command queue flushing before rendering.
2011-08-20 14:12:16 +00:00
Lasse Öörni
84fb81684b Documentation update. 2011-08-19 10:53:36 +00:00
Lasse Öörni
5e2682d3e5 Cut/copy/paste in editor.
Exposed Serializable::FinishUpdate() to script.
2011-08-18 21:52:59 +00:00
Lasse Öörni
16911eab63 Added delete support to the editor.
Fixed erroneous script API bindings.
2011-08-18 18:46:12 +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
f1bb8bd2ba Updated to latest kNet.
Editor script fixes.
Fixed loading resources from script.
Fixed crashes when handling events from objects that subsequently get destroyed.
Fixed not being able to load elements of type UIElement from xml layouts.
2011-08-15 20:56:53 +00:00
Lasse Öörni
700520f320 Further comments and code cleanup. 2011-08-14 09:28:40 +00:00
Lasse Öörni
de67af8825 CoreData / Data reorganization.
Comments cleanup.
Removed the fallback-data mechanism from IndexBuffer and VertexBuffer as unnecessary.
2011-08-13 15:43:52 +00:00
Lasse Öörni
bf2b9ded9a Switched to Open Asset Import Library svn revision 1062. 2011-08-11 21:54:28 +00:00
Lasse Öörni
e22483e482 Added viewmask parameter to octree queries to avoid manual viewmask checking in View and to allow partial scene queries for logic.
Reordered ray query parameters; added default query parameters to script.
Renamed BeginRender & EndRender events to BeginRendering & EndRendering.
2011-08-09 15:48:32 +00:00
Lasse Öörni
dca6687166 In absence of packet loss, use dynamic send rate increase/decrease based on utilization.
Removed unused UDPMessageConnection code.
2011-08-01 00:03:06 +00:00
Lasse Öörni
57e8e910af Fixed missing alwaysUpdateOwner script property in NetworkPriority. 2011-07-31 17:22:27 +00:00
Lasse Öörni
b694ad047e Refactored interest management into the NetworkPriority component.
Fixed setter functions referring to the Set class in Doxygen comments.
2011-07-31 17:19:00 +00:00
Lasse Öörni
6d552a8193 Use fixed size 24 bit network object IDs for more deterministic bandwidth use.
ReadID() / WriteID() renamed to ReadFileID() / WriteFileID().
2011-07-30 20:57:28 +00:00
Lasse Öörni
bd76a14249 Fixed Unix build. Fixed counting of enemies in multiplayer NinjaSnowWar. Disabled snowball CollisionShape replication due to divergent simulation on the client. Removed previousControls from Connection as it is potentially unreliable if multiple controls packets arrive between updates. 2011-07-29 22:57:14 +00:00
Lasse Öörni
abe05c6a53 MinGW is no longer officially supported.
Documentation update.
2011-07-29 15:46:47 +00:00
Lasse Öörni
7f88b9977e Documentation update. 2011-07-29 12:44:45 +00:00
Lasse Öörni
7b254df85d Added simple distance-based interest management for networking. 2011-07-29 12:24:22 +00:00
Lasse Öörni
38fe1554ba Initial multiplayer NinjaSnowWar.
Various networking and script API bugfixes.
Fixed kNet profiling compile errors due to STL -> Container library conversion.
Fixed loading of textures failing in headless mode (just return success without doing anything.)
The E_CLIENTCONNECTED and E_CLIENTDISCONNECTED events now also come from the Connection in question, to allow using GetSender() for convenience, instead of looking up the connection from event data.
Added simple network traffic statistics logging to Connection.
2011-07-29 00:04:52 +00:00
Lasse Öörni
1c154ef17e Uncommented the package file download test from TestScene.as.
Fixed missing default arguments in the script API.
Fixed crash if a script file is unloaded while executing a script function.
Fixed Urho3D.exe not correcting the script file name to internal format (slashes instead of backslashes.)
Use black default background for the Direct3D9 window.
2011-07-28 11:41:56 +00:00
Lasse Öörni
43671aa66f Fixed up to one second delay in starting UDP datagram sends.
Refactored SendMessage API in Connection & Network, allowing the user to specify message priority.
Split Network library internal messages into 3 priority categories.
2011-07-28 09:01:33 +00:00
Lasse Öörni
1d3f797643 Removed unnecessary code from Connection. 2011-07-27 23:06:12 +00:00
Lasse Öörni
f70cc35815 Added package file download support to the network protocol.
Added commented out package download test code to TestScene.as.
Increased kNet's UDP send rate upper limit and aggressiveness in increasing the send rate.
Fixed being unable to do sparse seeks in files when writing.
Container library bugfixes.
2011-07-27 22:41:12 +00:00
Lasse Öörni
bad8e776de Added networking documentation. 2011-07-27 08:41:16 +00:00
Lasse Öörni
4d0e922e3f Added common script code for parsing network-related command line arguments. 2011-07-26 15:29:33 +00:00
Lasse Öörni
40d04b377b Added Compare function to String, which is optionally case-insensitive.
Added registration of allowed remote events.
2011-07-25 23:15:04 +00:00
Lasse Öörni
ffad4ba005 Fixed UI related crashes in headless mode.
Fixed loading of materials in headless mode (just return success while doing nothing.)
Fixed EventType parameter of SendRemoteEvent() / BroadcastRemoteEvent() in the script API, should be a string.
Added smoothed motion for nodes in network client scene.
Added enum CreateMode to CreateChild() & CreateComponent() which replaces the "local" bool parameter.
Added possibility for client to spawn physics boxes in networked TestScene.
2011-07-23 23:33:57 +00:00
Lasse Öörni
ee9b6cc0f8 Renamed the script PostLoad() to FinishUpdate().
Optimized the finalization of CollisionShape & Joint attributes: the ODE object is not needlessly recreated.
2011-07-21 23:16:28 +00:00
Lasse Öörni
4c3dd57980 Added more networking functionality, including remote events and client's controls update.
Added Append functions to String.
Removed networking mode from Scene, as it seems to be unnecessary.
2011-07-15 14:52:43 +00:00
Lasse Öörni
f28728b3e2 Send identity VariantMap on connecting to server.
Fixed possible bug in WriteString/ReadString if the string contains zeroes in the middle.
2011-07-14 13:11:39 +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
af2b4311dc Function name unification and cleanup. ChildElement -> Child. RootElement -> Root. ScriptedChildren -> ChildrenWithScript. 2011-07-12 09:08:17 +00:00
Lasse Öörni
4d5b7fa05a Fixed newline character being returned from GetConsoleInput() on Unix.
Comments & documentation fixes.
2011-07-10 22:18:50 +00:00
Lasse Öörni
5a6c8f6d27 Removed global properties related to the script object's ScriptInstance. The ScriptInstance is available as the global property "self" instead.
Documentation update.
2011-07-05 08:46:45 +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
a7a94a7af2 Unified the texture get/set data API between Direct3D9 & OpenGL.
Refactored OpenGL texture data restore on context recreation: now data is explicitly stored then restored, instead of relying on resource reload.
2011-07-04 18:55:46 +00:00
Lasse Öörni
69a78da8df Switched to GLFW 3.0. 2011-06-30 21:03:59 +00:00
Lasse Öörni
16aeec5c32 Re-enabled sound latency adjustment.
Removed support for 8-bit sound output.
2011-06-25 10:50:58 +00:00
Lasse Öörni
0d29d818ad Moved from SDL to GLFW & PortAudio. 2011-06-24 23:20:09 +00:00
Lasse Öörni
270ba840b3 Documentation update. 2011-06-21 21:37:46 +00:00
Lasse Öörni
af01853960 Fixed erroneous char input suppression in the example scripts.
If only vsync changes on OpenGL, do not recreate the context.
Documentation update.
2011-06-20 22:17:29 +00:00
Lasse Öörni
d55d29612c Documentation update. 2011-06-19 23:13:11 +00:00
Lasse Öörni
6cdddcb0f6 Documentation updates. 2011-06-19 11:45: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
87f9bbd846 Switched back to a edge filter for deferred antialiasing, as temporal antialiasing causes problems when both the camera and objects move.
Fixed infinite loop in HashMap copy.
2011-06-14 21:10:27 +00:00
Lasse Öörni
9c9643508c Use GL_DEPTH_COMPONENT24 instead of the packed depth stencil for OpenGL deferred rendering depth buffer, because the packed format seems to be slower.
Removed light prepass rendering support, as it has implementation difficulties under OpenGL and is often unsatisfactory in performance and specular lighting quality.
Removed the shader subdirectories.
Added option to specify whether single-channel images are to be interpreted as luminance or alpha, when loading into a texture.
2011-06-12 23:38:54 +00:00
Lasse Öörni
2669231c19 Added OpenGL related documentation. 2011-06-12 15:47:21 +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
3ca3f84df9 Refactored shader loading. A binary format is now used instead of XML data.
PixelShader and VertexShader classes replaced with Shader and ShaderProgram.
2011-05-22 21:34:35 +00:00
Lasse Öörni
5f4b56103f Refactored ShaderCompiler to use D3DXCompileShader() instead of invoking fxc.exe. 2011-05-21 21:04:24 +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
3abd7eee88 Reverted previous commit due to bugs and performance loss.
Removed the deprecated Physics subdirectory from ResourceCache directory heuristic.
Updated documentation.
2011-05-20 23:17:10 +00:00
Lasse Öörni
516b532a8f Refactored StringUtils as member functions of String & the classes to be converted. 2011-05-19 22:22:50 +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
62c9aa3d9c Added local node & component ID's in preparation to networking.
Split rendering documentation on several pages.
2011-05-10 21:09:03 +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
97d698e922 Code cleanup.
Minor documentation update.
2011-05-09 16:10:45 +00:00
Lasse Öörni
a71d4d7b0e Added mention of AnimationController to the documentation. 2011-05-08 18:24:16 +00:00
Lasse Öörni
37f696be12 Added rest of the reference documentation. 2011-05-08 17:24:13 +00:00
Lasse Öörni
020232744a Even more documentation. 2011-05-08 12:20:22 +00:00
Lasse Öörni
9a5cbb6016 More documentation.
Tweaked NinjaSnowWar difficulty.
Moved CreateObject from Object to Context.
Made EventHandler & AnimationState RefCounted to simplify memory management.
2011-05-07 22:44:40 +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
dbebed33c4 Fixed bug with setting only the minimum Text width when the text changes. 2011-05-04 21:51:28 +00:00
Lasse Öörni
ee9b6232c1 Added readme for the BlueHighway font. 2011-05-04 11:17:26 +00:00
Lasse Öörni
2a986cf8e3 Quickstart wording tweaks. 2011-05-04 07:14:49 +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