Urho3D 1.7 release category:

Source package

Binary package

Porting notes

If you are migrating your existing project from earlier release version of Urho3D, please read these notes.

Changelog

  • Inverse kinematics support.
  • Bullet RaycastVehicle support.
  • AppleTV platform support.
  • WebAssembly support on the Web platform.
  • IME support on Linux platform.
  • Several font rendering improvements and TypoGraphy sample.
  • WebP image loading support.
  • Sparse navigation meshes and navmesh streaming support.
  • AutoRemove bool removed. Replaced with more general AutoRemoveMode mechanism.
  • Free functions supported in attribute accessors.
  • IntVector3 class.
  • EnumAttributeAccessorImpl is now compatible with enum classes.
  • Use default continuous physics & substepping values for Box2D world.
  • Node-specific 2D physics collision events.
  • Improved Box2D joint handling.
  • Use GetDerivedComponent() when getting PhysicsWorld2D to allow subclassing it. PhysicsWorld2D members no longer private also for this reason.
  • ApplyLinearImpulseToCenter() function in RigidBody2D.
  • Additional info exposed in 2D physics events.
  • CollisionShape2D scale allowed to be signed.
  • Refactor PhysicsWorld2D contact info.
  • ParticleEmitter2D can be made to stop / restart emitting.
  • CSV and base64 encoding options when loading TMX files.
  • Several tilemap / TMX file improvements.
  • Improved convex hull debug draw.
  • Bool & int shader parameters on D3D11 / OpenGL.
  • Maximum extrusion distance for directional light shadows.
  • Shader compilation defines added to materials.
  • Shader compilation defines added to renderpath commands.
  • Shader compilation define exclusion mechanism in Pass.
  • Multisampled rendertargets.
  • Mipmapped rendertargets.
  • Alpha-to-coverage can be enabled in pass or material. Requires D3D11 or OpenGL.
  • Line antialiasing support.
  • Optional soft particles support.
  • Improve VSM shadows by moving z/w divide to pixel shader.
  • Anisotropic-nearest filtering mode, when supported.
  • Optional per-texture max anisotropy setting.
  • Physical light values support.
  • Area light support.
  • Multisample option for VSM shadows.
  • Shader cache location is configurable, and defaults to a user-writable directory.
  • Renderer events for screen buffer allocation & global shader parameters having been set.
  • Renderer event for all views having been rendered.
  • DecalSet optionally sizes vertex & index buffer only based on use.
  • New face camera mode in BillboardSet & Text3D.
  • Support defining neighbor terrains to avoid LOD discontinuities.
  • AnimationController internal control structures can be accessed as part of its public API.
  • AnimationController can be queried if any animation is playing on a layer.
  • Allow to get animation tracks by index.
  • Custom projection matrix support.
  • Implement GetMultiSampleLevels() on OpenGL.
  • Monitor and refresh rate options for Graphics::SetMode().
  • Allow unclamped morph weights.
  • Static helper function for calculating VertexBuffer element offsets.
  • Model metadata support.
  • PBR improvements.
  • Clean up PBR shaders & techniques; do not require tangents in PBR shaders unless using normal mappings.
  • Possibility to set mouse mode or visibility before Input class initialization.
  • Mouse centering / position setting moved to Input public API.
  • Seek method for audio streams.
  • Anchors and pivots can optionally be specified for UI elements.
  • ProgressBar UI element added.
  • UI root element custom size support.
  • UIElement child XML loading returns created child instead of success bool.
  • Add delta parameter to UI element resize event.
  • SDF font supersampling.
  • FontType enum exposed to public API.
  • NAVIGATIONPUSHINESS_NONE mode in CrowdAgent.
  • NavArea solid debug geometry.
  • To/from string conversions in JSONValueType / JSONNumberType.
  • Add function to test for Rect / Rect intersection.
  • Resize overloads in Vector / PODVector.
  • Remove ineffective static TypeInfo checking functions.
  • Node & UIElement child query function overloads that return a collection.
  • Node IsChildOf() function.
  • Temporary parameter added to Node CreateChild() function.
  • Sprite2D can define its draw & texture rectangles.
  • UniquePtr class.
  • Several math API functions added.
  • Stable random generator added.
  • Add FloatToRawIntBits function.
  • Variant can hold Rect objects.
  • Variant can hold 64-bit integers.
  • Mipmap manipulation support in Image.
  • Image class SaveDDS() function.
  • Text3D GetHeight() function.
  • Console auto-completion.
  • Console text highlighting according to message type.
  • XMLFile GetOrCreateRoot() function, and XMLElement GetOrCreateChild() function.
  • Urho3DPlayer attempts to read CommandLine.txt from resource system on all platforms, if cannot read from filesystem.
  • Improve use of SDL_Init() so that Context keeps track of initialized SDL subsystems.
  • IES cookie generation in RampGenerator.
  • AbstractFile as a parent class for those that implement both Serializer & Deserializer.
  • Allow specifying child node by name in attribute animation paths.
  • Functions to get rotation axis & angle in Quaternion.
  • Improved AngelScript API dump.
  • Consts exposed to AngelScript API.
  • OS query functions added to ProcessUtils.
  • Add resource to cache before sending background load event.
  • Prevent sending event to subscribers added during event handling.
  • Prevent rendering of unnecessary shadow maps.
  • Prevent rendering of deferred light volumes which would be masked out due to lightmask being only 8-bit in deferred rendering.
  • Move “cold” parts of Node into NodeImpl class to improve performance.
  • Populate rapidjson value before adding to parent.
  • Update to AngelScript 2.31.2.
  • Update to FreeType 2.7.1.
  • Update to SQLite 3.18.0.
  • Update to LibCpuId 0.4.0.
  • Update to Box2D 2.3.2.
  • Update to Assimp 3.2.
  • Update to LZ4 1.7.5.
  • Update to Bullet 2.86.1.
  • Build system: ensure empty CMAKE_OSX_DEPLOYMENT_TARGET on iOS build.
  • Build system: auto-disable PCH on Android Clang build.
  • Build system: prefer CMake’s regex instead of grep.
  • Build system: turn off PCH on bad ccache version.
  • Build system: Bash on Ubuntu on Windows -support.
  • Build system: work around MinGW 6.1.0 linking issue.
  • Build system: MinGW 6.1.0+ fix (narrowing conversion / internal compiler error.)
  • Build system: consider MinGW as multilib compiler.
  • Build system: make URHO3D_64BIT option applicable on MinGW.
  • Build system: use absolute output path for MinGW sysroot auto-detection.
  • Build system: fix Wayland build.
  • Build system: autodetect availability of clock_gettime() on Apple platforms.
  • Build system: fix package metadata for RPI & ARM platforms.
  • Build system: fix Urho3DAll.h generation in non out-of-source build.
  • Build system: avoid special chars in paths in MRI script passed to ar utility (Web build.)
  • Build system: Always use export header for auto-discovering build options.
  • Build system: use -O2 option for MinGW release build
  • Build system: add option to control how to share resources on web platform.
  • Build system: check availability of native compiler toolchain.
  • Build system: remove older CMake constructs that are no longer necessary.
  • Build system: new Android toolchain.
  • Build system: several Web build related improvements.
  • Build system: MODULE library type support option for Web build.
  • Build system: disable exception handling codegen for Web DEBUG build.
  • Build system: remove unused options from define_source_files() macro.
  • Build system: Prevent resource symlink creation during resource packaging.
  • Build system: Skip try_compile test when not appropriate (iOS debug build.)
  • Build system: use no_weak_imports linker flag.
  • Build system: workaround struct redefinition on newer MinGW.
  • Build system: search for DirectX path both rooted & non-rooted.
  • Build system: make clean for MinGW / Android / Web platforms.
  • Build system: enable multi-threaded compilation in Visual Studio.
  • Build system: fix mklink test when current path is not sources dir.
  • Build system: fix symlinked batch files not being launchable from Windows Explorer.
  • Build system: generate PCH files using naming convention expected by Clion.
  • Build system: generate dummy PCH only in out-of-source build tree.
  • Editor: do not attempt to parse extensionless files as XML.
  • Editor: draw navigation debug geometry.
  • Editor: prevent unnecessary attribute inspector refresh on resource reload.
  • Editor: allow drag-drop of generic XML files into attribute edit fields.
  • Editor: improved handling of structure attributes.
  • Editor: optimization to avoid updating temporary objects when they are not shown in hierarchy.
  • Editor: optimize update during object spawn.
  • Editor: paint selection.
  • Editor: show origins option.
  • Editor: fix UI element internal var indexing so that editing user-defined variables works right.
  • Editor: restore window positions on viewport mode switch.
  • Editor: terrain editor.
  • Editor: color wheel for Text3D.
  • Editor: double size on high DPI display.
  • Editor: fix resource browser node add/removal shown in hierarchy window.
  • Editor: fix resource browser preview camera position.
  • AssetImporter: possibility to export animation without skinned mesh.
  • AssetImporter: $fbx node suppression.
  • AssetImporter: fix animation start/end times when saving multiple animations.
  • AssetImporter: fix incorrect applying of model’s root node transform.
  • Documentation: explain how to setup Windows MKLINK privilege.
  • Documentation: add section on scene graph events.
  • Documentation: explain EMSCRIPTEN_WASM build option.
  • Documentation: note on simultaneous network server & client usage.
  • Documentation: update on the define_resource_dirs() macro.
  • Documentation: do not include RapidJSON classes.
  • Documentation: inverse kinematics page.
  • Sample content: Kachujin model, used in SkeletalAnimation sample.
  • Sample content: new Urho3D logo.
  • Sample content: mutant model added to the CharacterDemo.
  • Sample content: Vertex colors in the standard primitive models.
  • Sample content: fix normals / lighting on the cylinder.
  • Sample content: Line primitive models.
  • Sample content: material preview model.
  • Fix broken off-mesh movement for CrowdAgent.
  • Fix Bullet assert / crash when collision shape was changed from compound to non-compound.
  • Fix unintended update of wordwrapping text’s width.
  • Fix uninitialized fields in FontFaceBitmap.
  • Fix recreation of CollisionChain2D shape.
  • Fix positioning of borderless window (if not filling the whole monitor.)
  • Fix RigidBody2D not returning to original transform.
  • Fix copypaste error in SpriteSheet2D load code.
  • Fix out-of-bounds text buffer access when compiling an AngelScript module.
  • Fix VariantMap to JSONValue and back conversion.
  • Fix handling /./ in executable path in SanitateResourceName().
  • Fix crash if script object constructor throws.
  • Fix incorrect optimization in UIElement::GetElementAt().
  • Fix potential crash when erasing sibling nodes during component destructor.
  • Fix blend modes for 2D particles.
  • Fix use of asGetActiveContext() in template code, as it could leak undesirably to user application and cause undefined symbol.
  • Fix jumping Slider knob.
  • Fix AngelScript temp variable corruption and problem with handle-reference argument.
  • Fix Constraint2D body connection serialization (other body nodeID.)
  • Fix instancing in vegetation shader.
  • Fix SDL keyboard input on RPI platform.
  • Fix fixed size billboard not properly realculating size in all cases.
  • Fix multisample quality handling on D3D11.
  • Fix Text3D batches beyond the first not showing correctly.
  • Fix input scaling for high DPI displays.
  • Fix differentiation of alpha & RGBA textures in text shader.
  • Fix crash in usedGlyphs mode.
  • Fix zero sized UI root element causing divide by zero.
  • Fix various missing script API functions.
  • Fix terrain UV coordinates generation.
  • Fix shader define update when Text3D changes its rendering between SDF / non-SDF.
  • Fix erroneous fadeout of other AnimationController animations, if playback of new animation failed.
  • Fix nearest filter mode not using mipmaps on OpenGOL.
  • Fix skinning matrix pointers changing erroneously after late creation of bones.
  • Fix BillboardSet 16 bit indices limitation.
  • Fix CrowdAgents getting erroneously included in navmesh geometry.
  • Fix calculation of UI element combined screen rect.
  • Fix world space tangent for billboards.
  • Fix ValueAnimation’s time range not getting expanded by adding event frames.
  • Fix ValueAnimation removal during event handling causing crash.
  • Fix word wrap text char positions.
  • Fix WorkQueue item insertion; insert last if no other option possible.
  • Fix unnecessary mouse centering in screen mode change handling.
  • Fix unsafe removal of event receivers.
  • Fix string corruption in SQLite queries.
  • Fix error in skybox HLSL shader when instancing is forced on.
  • Fix erroneous reuse of backbuffer depth buffer when multisampling.
  • Fix uninitialized memory in Material.
  • Fix out of bounds array access when material quality is higher than high.
  • Fix shadow-related shader function signatures on GLES.
  • Fix shaky water shader on GLES.
  • Fix memory leak in AngelScript Dictionary.
  • Fix weight fade erroneously affecting animation after weight was set manually.
  • Fix LookAt mixed rotation mode.
  • Fix skydome GLSL shader.
  • Fix depth bias not getting cloned in Material::Clone().
  • Fix CrowdAgent removal to be safe during reposition event.
  • Fix keeping track of RigidBody2D constraints.
  • Fix double shader parameters passed from e.g. Lua, convert to float.
  • Fix navigation system obstacles not observing their scene node movement and updating themselves.
  • Fix self-insertion in Vector.
  • Fix slowed down navigation agent when scene node dirtied during reposition event.
  • Fix slope-scale bias adjustment on OpenGL.
  • Fix incorrect hashing of rasterizer states on D3D11.
  • Fix AnimationController animation search differentiating slash and backslash when it shouldn’t.
  • Fix LineEdit text & cursor not being centered by default.
  • Fix potential flipped normals in physics collisions (double manifold issue.)
  • Fix undefined __cpu_model symbol in shared lib on GCC.
  • Fix cache datatype for URHO3D_LIB_TYPE
  • Fix Android black screenshot (use RGBA format.)
  • Fix missing network update if node is added to the scene late.
  • Fix crash when setting model resource to drawable component that is not attached to a scene node.
blog comments powered by Disqus