This release contains several new features and fixes to the libraries, and the tool
Changelog
Fuse
- Simulator client app usability improvements
- Add option to reconnect when a connection is lost or can’t be established
- Pause preview when an exception goes unhandled, with options to ignore exception or restart
- Introduce “offline mode” showing the last successful version of the app
- Fixed a bug in the UX code completer, where types found in the root namespace were not suggested.
Fuse libraries
TransformOrigin
-
TransformOriginenum removed, replaced with singletons inTransformOriginsimplementingITransformOrigin. - New modes
HorizontalBoxCenterandVerticalBoxCenterfor 3D transforms -
Rotationnow supports XYZ values, these are treated as Euler angles (see Quaternion.FromEulerAngles). Shortcuts toDegreesXDegreesYandDegreesZare now provided. The previousDegreesremains and is equivalent toDegreesZ -
Rotation.VectorrenamedEulerAngleto better reflect what it is and avoid confusion with rotation around a vector
Cameras
-
IWindownow derives fromIViewport, most fields move to base -
Frustum.PixelToWorldRayhas been removed. You must now use theIViewportinterfaceNode.Viewportto get the world ray -
DefaultShading.Camerais replaced withViewportand it expects a viewport (defaults to DrawContext.Viewport) -
Perspectiveremoved fromIViewportas it doesn’t belong there. Wrap your app in aVieportand define thePerspectiveproperty -
ICamerais nowIFrustumas it better defines the purpose of those classes -
OrthographicCamerarenamedOrthographicFrustum
Visibility
-
Node.IsVisiblechanges meaning: true if the node and all of its parents are visible (this is now a non-virtual function) -
Node.IsLocalVisibleintroduced to mean if the local node is marked as visible (this is a virtual function) -
Node.IsVisibleChangedevent raised wheneverIsVisiblemay have changed
Layout Changes
-
InvaildateLayoutnow takes aInvalidateLayoutReasonparameter, but a suitable default has been provided -
Element.IsLayoutInvalidhas been removed as it cannot provide meaningful information. -
Element.OnResizedhas been removed, subscribe to thePlacedevent instead -
Element.OnPlacedhas been removed, subscribe to thePlacedevent instead -
PlacedArgsfields simplified. Use theActualXXXelement properties for current data. -
ResizedArgsremoved, onlyPlacedArgsis used now -
IActualSizereplaced withIActualPlacement -
PlacedArgsandPlacedHandlernow in theFusenamespace -
INavigaionPanel.Placedchanged signature to match standardElement.Placed(object sender, PlacedArgs args) -
INavigationPanel.ChildAdded/Removedchanged toEventHandle<Node>, with signature(obejct sender, Node child)
Navigation naming
- Renamed
IPageProgresstoINavigation -
INavigationContextmerged intoINavigation -
IPageProgress.CountrenamedPageCount, andPageCountChangedevent -
IPageProgress.CurrentrenamedPageProgressandPageProgressChangedevent -
PageIndicator.PageProgressis nowNavigation -
StructuredNavigation.ProgressChangedevent removed, usePageProgressChanged -
NavigationContextproperty renamedNavigation.Navigation -
{Page key}binding will use the closer ofNavigation.Pageor the current page ofNavigation.Navigation -
CurrentPageBindingbehavior removed, useNavigation.PageorNaviation.Navigationproperty on element instead
Uno
- Add support for marking projects and packages “Internal”
- Added
Uri.Parsemethod - Android and IOS now use the ‘Mobile.Orientations’ project setting
- Added OSX and APPLE UXL conditions
- OSX now uses same http backend as ios and so no longer requires xli
- Add milliseconds support for
OffsetDateTimePattern - Increased ticks accuracy in
Uno.Timeon Android