Fix off by one error in mipmap data size counting.
Fix FindU3D CMake module behaving incorrectly when called more than once.
Fix PhysicsWorld::GetRigidBodies() to use immediate contact test for static bodies.
Fix sampling of depth buffer in read-only mode on D3D11.
Fix ForwardDepth renderpath potentially missing depth clear on OpenGL.
Fix DropDownList placeholder text not auto-hiding when an item is selected.
Fix possible crash issue when exiting engine with background loaded resources still in queue.
Fix FindDirect3D CMake code for CMake old versions.
Fix issues with parented rigidbodies when moving them from code.
Fix math class equality operator in SSE builds on specific Visual Studio versions.
Fix ScreenToWorldPoint() to return the specified Z distance.
Fix vegetation shadow shader on D3D11.
Fix & simplify setup of the "universal" builtin target in iOS build.
Fix build system to install/package Emscripten shared js & data files.
Fix Application.h to be usable without other include files.
Fix lighting interpolator order in D3D11 shaders.
Fix node's Z coordinate not retained in 2D physics movement.
Fix potential crash and performance issues in Octree raycasts by making them non-threaded; in practice the spin-up time for work items could override any threading benefits.
Fix missing DelayedStart functionality in LuaScriptInstance.
Fix point fill mode on D3D11.
Fix input focus loss when using an external window handle.
Fix missing D3D SDK search on VS2010 and earlier.
Fix ABI incompatibility in BoundingBox class depending on URHO3D_SSE flag.
V1.5
Database subsystem with either SQLite or ODBC support.
Localization subsystem.
Improved the navigation / crowd navigation API and examples.
SSE and animation performance optimizations.
Enable BT_USE_SSE on Linux and MinGW platforms, enable BT_USE_NEON on Android and Raspberry-Pi platforms.
U3D macros such as OBJECT, EVENT, HANDLER renamed to have URHO3D_ prefix to prevent ambiguity with other libraries.
Double support to Variant, Deserializer, Serializer & JSONValue. Store Lua object attributes accurately as doubles.
Support for moving nodes & components between scenes, or creating components "sceneless" and moving into a scene later.
Cubemap loading from DDS files.
Refactored the object class registration mechanism to store the object's base class for "Is this class derived from this" queries.
Optional "raw" Lua file loading through direct filesystem access for easier debugging.
Configurable blend mode in renderpath quad commands.
UV coordinates added to raycast results.
Allow submitting bare function names instead of full signature to Execute() & DelayedExecute() in AngelScript, similar to specifying event handler functions.
Allow negative scale for nodes.
Culling camera optimization for viewports, to allow rendering multiple viewports with the same culling data set.
Refactor Urho2D animation playback. Add optional Spine support (user must supply Spine runtime.)
Refactor Urho2D sprite atlas handling.
CollisionShape acquires model resource from StaticModel in same node automatically if collision model undefined.
Request the high-power GPU on AMD multi-GPU setups.
API for programmatic animation track & keyframe creation.
Added AnimationController IsAtEnd() function.
Added "remove on completion" mechanism to AnimationController.
Added function to remove all components of type to Node.
Added GetParentComponent() function to Node.
Added resource memory usage stats to DebugHud.
Support for ScanDir() on Android.
Improve Variant / VariantMap bindings on Lua.
Improve internal mechanisms for Lua bindings, e.g. store U3D context inside Lua state global table.
Improve API for kNet connection stats.
Improve AngelScript GetChildrenWithClassName() to return also derived classes.
Improve UI tab behavior
Improved navigation debug geometry
Improve ConvexCast by taking into account CollisionShape's offset position & rotation.
Spline class cleanup & improvements, including linear interpolation mode, and looping Catmull-Rom mode.
Refactored JSONValue class to be more JSON-like.
Material render order support within a pass.
MM_FREE mouse mode, which disassociates cursor visibility from being confined inside the window.
Allow doubleclick event in UI over emptiness
Make Octree::Raycast() threadsafe.
GetGLContext() added to GraphicsImpl on OpenGL to allow the application to perform manual context switching.
Fixes for vertex texture fetch on D3D11.
Allow optional forced creation of CPU-only vertex & index buffers also in non-headless operation.
Unified texture upload behavior: half-float formats need to be provided as such on both D3D & OpenGL. Added float/half-float conversion functions.
Automatic generation of intermediate directories in FileSystem::CreateDir().
Warn if attempting infinite distance physics raycast. Remove erroneous infinity default value from AngelScript physics raycast bindings.
Allow non-strict numeric type to be returned from Variant, e.g. GetFloat() succeeds for an int.
Allow to disable PhysicsWorld or PhysicsWorld2D automatic simulation stepping during scene update. When disabled, the physics world can still be stepped manually.
Support for manual advancing of value animations.
globalVars VariantMap for AngelScript to allow easy cross-ScriptFile parameter passing.
Improve ConvexCast() to return distance using the hit fraction.
Ensure normalized vertex weights in AssetImporter, and clamp to 4 weights maximum instead of error, by dropping the smallest weights.
Configurable layer count in DynamicNavigationMesh to control memory usage.
Emscripten ETC1 & PVRTC extension support detection.
Emscripten hardware instancing support.
emscripten_get_now() for better timer precision and less CPU use.
Disable frame limiter Sleep() on Emscripten.
Disable audio output in C++ samples where it isn't necessary.
Remove redundant glEnable() / glDisable() calls related to OpenGL texture types.
Removed defined_ member variable from BoundingBox, Sphere & Rect in favor of determining the definedness from the bounds being valid.
Invalid order checking for Lua binding overloads.
Dangerous math class constructors marked explicit.
Properly enabled multithreading in GCC/Clang builds.
Emscripten toolchain & build related fixes and improvements.
Clang tools support in the build.
Annotator & script binding extractor skeleton tools in preparation for generated script bindings.
Build improvements for CLion IDE.
Support Android NDK r10e.
Support non-PCH build.
Support spaces in path for build.
Install d3dcompiler DLL to bin directory for Windows / D3D builds.
Improved U3D DLL installation logic.
More user-friendly operation for missing HTML help compiler or dot.
Symlink assets to the build binary directory.
Allow installed sample executables to run out-of-the-box on Windows.
Reformatting of source code to get rid of indents on empty lines.
Script subdirectory in the engine source renamed to AngelScript.
Option to build U3D without threading (URHO3D_THREADING). Normally disabled on Emscripten but can be enabled for experimental development on browsers with included support.
Improved documentation on contributing and 3rd party library policy.
Update AngelScript to 2.30.2.
Update Assimp to September 2015 revision.
Update Bullet to 2.83.6.
Editor: setting for new node position preference.
Editor: particle editor improvements.
Editor: function to assign child nodes into a spline path.
Editor: center camera on object with HOME key.
Editor: selectable MMB functionality.
Editor: language selector and localizations.
Editor: Blender hotkeys mode.
Editor: HSV color wheel.
Editor: event handling refactoring.
Editor: 3D debug icons.
Editor: make showing IDs optional.
Editor: cubemap generation support.
Editor: export scene to .obj.
Editor: accelerator keys for reset pos/rot/scale.
Editor: quickmenu select topmost option with Enter key.
Editor: local offset added to spawn editor.
Fix missing bindings in navigation / crowd navigation script API.
Fix missing Lua bindings for Component class.
Fix SplinePath AngelScript bindings.
Fix failure to add / remove obstacles due to DetourTileCache queue being full.
Fix UI element debug draw.
Fix quantized AABB bug with large collision meshes.
Fix incorrect viewport size when rendering to both backbuffer & textures.
Fix flashing of 2D sprite animations due to misreported animation length.
Fix AssetImporter single keyframe animations.
Fix GetData() from rendertarget textures on D3D9.
Fix handling of lightmap textures in AssetImporter.
Fix debug geometry rendering if backbuffer resolve was used.
Fix blend mode of Urho2D material getting overwritten.
Fix terrain shader quality on mobile devices.
Fix partial rendertarget clear on D3D11.
Fix URHO3D_PACKAGING build option on Windows shared lib build.
Fix PackageFile::GetEntryNames() to return filenames with original case.
Fix FXAA3 shader on OpenGL.
Fix Depth shader on D3D11.
Fix Blur shader.
Fix shader code which attempts to use 3D textures on GLES.
Fix objects getting removed from physics simulation due to zero Node scale on some axis.
Fix line height of included SDF fonts. Fix corrupt rendering if Text3D changes font from SDF to non-SDF or vice versa.
Fix inaccurate terrain occlusion.
Fix ValueAnimation resource not loading properly.
Fix RigidBody2D body type enum.
Fix RigidBody2D & CollisionShape2D to be resilient of the add order.
Fix Drawable2D's not using viewmask in rendering & raycast.
Fix Quaternion::FromLookRotation() zero cross product case.
Fix RigidBody2D custom mass handling.
Fix multiple value children created into XMLElement.
Fix TmxFile2D loading according to the updated Tiled spec.
Fix integer overflow in Random() functions.
Fix potentially unreleased Lua function references.
Fix UIElement functions that may crash at UI deletion time.
Fix mistaken commenting out of GLSL source code.
Fix animation "freezing" due to model being invisible while the animation finishes.
Fix Graphics::ResolveToTexture() on D3D11, especially for less-than-fullscreen viewports.
Fix potential crash or error during animation event processing, if animations are added/removed.
Fix potential null pointer access at navmesh destruction time.
Fix not allowing collision geometry from multiple CustomGeometries in the same node.
Fix space glyph not getting loaded in some fonts.
Fix missing resource dependencies tracking when resource autoloading is switched on during runtime.
Fix crash on MinGW build with SSE optimizations.
Fix windowed / fullscreen switching on Emscripten.
Fix missing URHO3D_API specifiers from some classes / structs.
Fix improper rounding during TrueType loading, which would displace some glyphs.
Fix incorrect bounding box of StaticSprite2D.
Fix lost font texture (OpenGL only) not being handled for Text3D.
Fix crash with CollisionChain2D with not enough vertices. Allow to create CollisionChain2D in the editor.
Fix crash caused by querying HashMap or HashSet while it's being cleared.
Fix erroneous hardware keyboard input on Android.
Fix Android MIPS build.
Fix UI element layouting changing the user-defined minimum size.
Fix crash in 64bit build when opening the console window.
Fix potential edge artifacts in dynamically created spritesheets.
Fix Spine animation playback thread safety.
Fix mouse button release while cursor hidden not releasing drag elements.
Fix too heavy-handed skybox shader Z adjustment on GLES, which caused objects to be obscured by the skybox.
Fix protected AngelScript class variables showing up as serializable/editable.
Fix ResourceRefList serialization bug caused by String::Split() not returning empty strings.
V1.4
Direct3D11 and OpenGL 3 rendering. Shader Model 2 support removed.
Experimental Emscripten support.
Raspberry-Pi 2 support.
Overhauled build system with better out-of-source build support & source tree reorganization.
Add host-tool building support for cross-compiling build which makes enabling of Lua/LuaJIT on Android build easier to configure than before and also makes new URHO3D_PACKAGING build option possible.
Add new engine parameter to set the location of the asset/resource prefix path. This addition makes new URHO3D_MACOSX_BUNDLE build option possible.
Add proper precompiled header (PCH) support for GCC/Clang compiler toolchains (and their derivatives).
Add compiler cache (ccache) support to build system for host systems where ccache is installable. The support is available for both native and cross-compiler toolchains.
Crowd navigation and dynamic navigation mesh using the DetourCrowd and DetourTileCache libraries.
2D rendering improvements and optimization.
Allow materials to use any texture unit; up to 8 consecutive material texture units available for desktop graphics.
Depth-only rendering pass and readable hardware depth support.
Cubemap support and using programmatically defined rendertargets in renderpaths.
Vertex and index buffer access from script through VectorBuffer.
UI can be rendered to a texture with a renderpath command.
Uncompressed DDS support: generic decode to 8-bit RGBA.
Dynamic audio types instead of hardcoded.
Dynamic cursor image type definitions.
Added various material techniques.
Allow reading Data/CommandLine.txt on all platforms, if U3DPlayer is started without parameters.
LOD level support in Terrain collision shape.
Reduce cost of rendering multiple materials with same shader parameter values, reduce shader switching cost on D3D9, and other rendering efficiency optimizations.
Refactored event subscription mechanism with Lua.
Add SpritePacker utility.
User configurable indentation for XML and JSON files.
Controls class moved away from Network subdirectory to allow using when U3D is built without networking.
MOBILE_GRAPHICS & DESKTOP_GRAPHICS defines for graphics capability level, to avoid hardcoded platform checks.
Remove bell sound when pressing Alt key combinations on Windows.
8-bit time stamp added to client controls sent over the network. Allow to intercept attribute updates from network. These features should allow writing custom clientside prediction.
Return hit submesh index in raycast to StaticModel.
Fill mode added to materials.
AngelScript script objects can be stored in a Variant.
Improved attribute registration: class name and variant type not needed.
Add new rake tasks to facilitate configuring/generating and building U3D project, including downstream project using U3D library.
Update PugiXml to 1.5.
Update STB libraries to latest.
Editor: particle effect editor window.
Editor: sound type editor window.
Editor: remember script attributes and restore them if a compile error occurs.
Editor: remember custom var names globally in the editor configuration.
Editor: button-based editor for bitmask attributes.
Editor: duplicate operation.
Editor: resource browser improvements.
Editor: renderpath can be chosen.
Editor: allow running without Urho2D compiled in.
Editor: inspector lock.
Editor: ensure correct gizmo size in orthographic mode.
Editor: copy camera transform operation.
Editor: do not allow to set a dialog modal in the UI editor.
Fix mouse stutter by using SDL_PollEvent() instead of SDL_PumpEvents().
Fix various missing script bindings.
Fix missing editor grid after scene revert.
Fix StaticModelGrup alpha materials rendering only 1 instance.
Fix missing attribute side effects (ApplyAttributes) in attribute animation.
Fix billboard render sorting from several views on the same frame.
Fix editor to load UI assets from executable directory to prevent using old UI assets from user's resource directories.
Fix UI element drag showing "not accepted" mistakenly.
Fix incorrect rendering to backbuffer after post-process pingponging on OpenGL.
Fix crash when calling FixInterpolation() incorrectly on a compressed sound resource.
Fix AngelScript compile on VS2015.
Fix crash with null materials in 2D rendering.
Fix kNet WinXP compatibility.
Fix possible threaded resource load issues with XML files.
Fix missing null checks in AnimatedSprite2D.
Fix window drag behavior with hidden mouse on Linux; require click in window before re-enabling hidden mouse on all desktop OS'es.
Fix erratic hidden mouse move when used together with touch input.
Fix black screen on OSX after fullscreen/windowed switch.
Fix incorrectly working AngelScript native calls on Clang / Windows.
Fix building of 32-bit Linux software package on 64-bit host system and add options for build system to produce correct "LIB_SUFFIX" for 64-bit Debian and RPM packages.
V1.32
Finalized Urho2D functionality, including 2D physics using Box2D, sprite animation and tile maps.
Threaded background resource loading. Must be manually triggered via ResourceCache or by loading a scene asynchronously.
Attribute and material shader parameter animation system.
Customizable onscreen joystick for mobile platforms. Used in examples.
Touch camera control in examples on mobile platforms.
Touch emulation by mouse.
Multi-touch UI drag support.
Consistent touch ID's across platforms.
Absolute, relative and wrap modes for the operating system mouse cursor.
Support for connecting & removing joysticks during runtime.