Skip to content

Releases: fuse-open/fuse-studio

1.10.0-rc1

13 Dec 18:49
Compare
Choose a tag to compare
1.10.0-rc1 Pre-release
Pre-release

Highlight

  • This version fixes build issues with the new NDK r18 on Android, conforms to recent versions of Android and Gradle tooling, and comes with various improvements and bug fixes for all platforms.

Known issues

  • Android Preview is broken in this RC, but Desktop Preview and iOS Preview are fine, and Export to Android works fine.

Bug reporting

If you find a bug, please submit an issue to either

depending on where in the Fuse platform you believe the issue belongs.

Changes since v1.9

Fuse Studio

  • Updated Java JDK links
  • Updated Android SDK Tools links
  • Updated Sublime plugin link
  • Remember full/compact window state

Fuselibs

Experimental.TextureLoader

  • Added a set of overloads that return the texture object directly instead of passing the texture via callbacks. The old callback-based overloads are deprecated.

Fuse.Controls.WebView

  • Improves WebView to handle mailto:, sms:, and tel: special URLs supported by system apps on Android and iOS.

Fuse.LocalNotifications

  • Fix bug on iOS where an app is launched (not restored) from a notification and the notification isn't delivered.

Fuse.Controls.DatePicker

  • Fixed bug which caused dates not to be selectable if the control was inside a WhileTrue on iOS.

Fuse.Deprecated.CameraView

  • This obsolete package has been removed. All functionality should be present in Fuse.Controls.CameraView instead.

Camera

  • New feature: checkPermissions() - Check if your app has access to the camera.
  • New feature: requestPermissions() - Request permission to access the camera. In iOS, if the user has previously denied access this function will redirect them to your app settings in their iPhone / iPad.

CameraRoll

  • New feature: checkPermissions() - Check if your app has access to the gallery.
  • New feature: requestPermissions() - Request permission to access the gallery. In iOS, if the user has previously denied access this function will redirect them to your app settings in their iPhone / iPad.

Uno

Command-line tool

  • uno disasm has been removed, as it's not very useful to end-users, and it complicates project maintainence.
  • The JavaScript backend including WebGL and FirefoxOS build targets has been removed after being broken and unmaintained for a long time.
  • Fixed a bug causing uno launch-apk to hang if an Android app crashes early.
  • dotnet is now the default build target for uno build and uno test on all platforms.
  • Removed the -O flag on uno build, as using it has no effect.
  • Removed the uno android sub-command, as it has not been maintained and no longer works on recent Android SDKs.
  • Removed the uno sdkmanager sub-command, as it has not been maintained and no longer works on recent Android SDKs.

Android build target

  • Upgraded to Gradle 4.4, and Gradle-plugin 3.1.3.
  • Upgraded build tools to version 27.0.3.
  • Upgraded support libraries to version 27.1.1.
  • Upgraded NDK platform version to 16.
  • Upgraded SDK compile and target versions to 26.
  • Fixed issues when building against the new NDK r18.
  • Added the following build property for linking native libraries from downloaded AAR packages. This makes it possible to integrate for example the ARCore SDK.
    • Gradle.Dependency.NativeImplementation
  • Added the following UXL file type to more conveniently include java files in generated projects.
    • JavaFile
  • Renamed the following build properties. Using the old names will now produce deprecation warnings.
    • Gradle.Dependency.{Compile -> Implementation}
    • JNI.SharedLibrary -> SharedLibrary
    • JNI.StaticLibrary -> StaticLibrary
    • JNI.SystemLibrary -> LoadLibrary
  • Marked the following build property as obsolete.
    • Gradle.Model.Repository

iOS build target

  • Upgraded to latest Xcode project format.
  • Fixed build errors when linking against GStreamer.framework.
  • Fixed build warnings.

Native build target

  • Upgraded to VS2017 C++ compilers when building on Windows.
  • Added the following build properties
    • LinkLibrary.Debug
    • LinkLibrary.Release

C++ API

  • Added optional argument on the U_FATAL(message) macro.
  • Added U_ERROR(format, ...) macro to more conveniently report errors.
  • The @{Method()} macro now expands to the qualified name of the generated method, and can be used to pass callbacks to C APIs.

Uno syntax

  • The extern(CONDITION) modifier is now accepted on partial classes.

UnoCore

  • Moved the following class from the Uno.Threading package.
    • Uno.Threading.Thread
  • Added the following classes.
    • Uno.ByteArrayExtensions
    • Uno.ValueType
  • Added the following property.
    • Uno.Array.Length
  • Added the following methods.
    • OpenGL.GL.BufferData(GLBufferTarget target, int sizeInBytes, IntPtr data, GLBufferUsage usage)
    • OpenGL.GL.BufferSubData(GLBufferTarget target, int offset, int sizeInBytes, IntPtr data)
    • Uno.Graphics.DeviceBuffer.Update(Array data, int elementSize)
    • Uno.Graphics.IndexBuffer.Update(ushort[] data)
    • Uno.Graphics.VertexBuffer.Update(float[] data)
    • Uno.Graphics.VertexBuffer.Update(float2[] data)
    • Uno.Graphics.VertexBuffer.Update(float3[] data)
    • Uno.Graphics.VertexBuffer.Update(float4[] data)
  • Added the following constructors.
    • Uno.Graphics.IndexBuffer(ushort[] data, BufferUsage usage)
    • Uno.Graphics.VertexBuffer(float[] data, BufferUsage usage)
    • Uno.Graphics.VertexBuffer(float2[] data, BufferUsage usage)
    • Uno.Graphics.VertexBuffer(float3[] data, BufferUsage usage)
    • Uno.Graphics.VertexBuffer(float4[] data, BufferUsage usage)
  • Implemented the following methods on C++.
    • Uno.Buffer.PinPtr()
    • Uno.Runtime.InteropServices.GCHandle.AddrOfPinnedObject()
  • Marked the following methods as obsolete.
    • OpenGL.GL.BufferData(GLBufferTarget target, int sizeInBytes, GLBufferUsage usage)
    • OpenGL.GL.BufferData(GLBufferTarget target, byte[] data, GLBufferUsage usage)
    • OpenGL.GL.BufferSubData(GLBufferTarget target, int offset, byte[] data)
    • OpenGL.GL.TexImage2D(GLTextureTarget target, int level, GLPixelFormat internalFormat, int width, int height, int border, GLPixelFormat format, GLPixelType type, byte[] data)
    • OpenGL.GL.TexSubImage2D(GLTextureTarget target, int level, int xoffset, int yoffset, int width, int height, GLPixelFormat format, GLPixelType type, byte[] data)
    • Uno.Graphics.TextureCube.Load(BundleFile)
    • Uno.Graphics.TextureCube.Load(string)
    • Uno.Graphics.TextureCube.Load(string, byte[])
  • Marked the following classes as obsolete.
    • Uno.Buffer
    • Uno.Compiler.ExportTargetInterop.DontCopyStructAttribute
    • Uno.Compiler.ExportTargetInterop.ExportNameAttribute
    • Uno.Content.Images.Bitmap
    • Uno.Diagnostics.EnterEvent
    • Uno.Diagnostics.ExitEvent
    • Uno.Diagnostics.FreeEvent
    • Uno.Runtime.Implementation.BufferImpl
    • Uno.Runtime.Implementation.Internal.BufferConverters
    • Uno.Threading.MainThreadAttribute

1.9.0

28 May 10:27
Compare
Choose a tag to compare

Highlight

  • Fuse is now entering a new era as free open-source software, so all features in Fuse Studio plus premiumlibs now available to everyone!

Bug reporting

If you find a bug, please submit an issue to either

depending on where in the Fuse platform you believe the issue belongs.

Changes since v1.8

Fuse Studio

  • Problems View:
    • New design makes problems easier to understand
    • Added new types of problems to Problems view. ie: Build Errors
  • Remove old sketch importer, import Sketch symbols using the new Sketch importer instead.
    • Add Sketch files to watch in Fuse Studio from Project/Sketch import-dialog or use command line fuse import <file>.sketch to import symbols from a single Sketch file. fuse import <project>.sketchFiles will import symbols from all files added from Fuse Studio.
  • Disabled drag and drop import using old Sketch importer.

Fuselibs

Android Layout

  • Fixed an issue causing an empty (Size = 0) layout to be performed on Android during app startup.

ScrollView

  • Implement support for horizontal scrolling in ScrollViews inside a NativeViewHost on Android

Color Expressions

Diagnostics

  • Improved diagnostics to provide UX source location on several kinds of errors.

DotNet/Preview Gradients

  • Gradient rendering in preview previously had some limitations in the ranges of StartPoint and EndPoint it could accept. This has been fixed: points inside and outside of the element render correctly now.

EdgeNavigator

  • Changed NavigateToggle to work without a NavigationContext and remove some potential errors.

LayoutMaster

  • Fixed a redundant layout invalidation when Element.LayoutMaster is changed. This would result in broken LayoutAnimation as multiple layouts could be triggered by a Change.

Layout

  • Fixed invalid layout caching when a relative container size changed. This affected ScrollView and DockPanel, in particular it may have resulted in stale sizes when the keyboard appeared, or orientation changed.

MapView

  • Fixed a crash when tapping the user's current location on iOS.
  • Fixed incorrect zoom factor changes when the location changed on iOS.

Router

  • Deprecated the GoUp behavior which causes unexpected behavior and defects. This fixes an issue of pressing the hardware back button at the root state (on Android). The old behavior can be had by setting GoBackBehavior="GoBackAndUp" on the router, but be aware it is deprecated and will be removed.
  • Added Router.BackAtRootPressed to allow intercepting a back button action on the root page.

Video

  • Fixed issue where Video on Android could end up not finding the rotation metadata on its video source
  • Fixed issue where Video on iOS could render incorrect on some rotations
  • Removed size flip in VideoVisual, looks like this used to work due to bug dependency. But the native video players flip the size themselves.
  • Add VideoOrientationPage to ManualTestApp, this page tests video with mp4 files with different rotations in their metadata section.
  • Use proper transforms for rotation in the video rendering code

WrapPanel / WrapLayout

  • Fixed WrapPanel to update its layout when a layout property changes.

Fuse.Views

  • Fixed a crash when pushing the back-button on Android.

Uno

UnoCore

  • Marked the following methods as obsolete. To get the old behavior, use Uno.Math.Floor(x + 0.5f) instead.
    • Uno.Math.Round(float)
    • Uno.Math.Round(float2)
    • Uno.Math.Round(float3)
    • Uno.Math.Round(float4)
  • Marked the following methods as obsolete. To get the old behavior, use Uno.Math.Round(double, int) instead.
    • Uno.Math.Round(float, int)
    • Uno.Math.Round(float2, int)
    • Uno.Math.Round(float3, int)
    • Uno.Math.Round(float4, int)
  • Math.Round(double, int) now throws ArgumentOutOfRangeException if digits are less than zero or larger than 15. This matches .NET behavior.
  • Fixed a bug where Math.Round(double, int) with large, finite inputs would produce infinities.
  • Math.Abs(int.MinValue) now throws OverflowException. This matches .NET behavior.
  • Added overloads of Math.Abs, matching .NET:
    • Math.Abs(sbyte)
    • Math.Abs(short)
    • Math.Abs(long)
  • Removed long obsolete importers:
    • ArrayImporter
    • BufferImporter
    • FontFaceImporter
    • SpriteFontImporter
    • IndexBufferImporter
    • Texture2DFileImporter
    • Texture2DImporter
    • TextureCubeFileImporter
    • TextureCubeImporter
    • VertexBufferImporter
  • Marked the following methods as obsolete. Those pulled in a big dependency that is currently unused.
    • Uno.Graphics.Texture2D.Load(BundleFile)
    • Uno.Graphics.Texture2D.Load(string)
    • Uno.Graphics.Texture2D.Load(string, byte[])

.NET

  • Fixed a code-generator bug where unsigned modulo got treated like signed modulo, causing negative values in the result.
  • Fixed a code-generator bug where ulong values larger than long.MaxValue didn't get sign-extended correctly.
  • Fixed a code-generator bug where signed division was used instead of unsigned division, leading to incorrect results for big dividends.

Uno Compiler

  • The following unsafe implicit casts has been turned to explicit casts. This matches C# behavior, and should avoid unexpected overflows:
    • sbyte -> ushort
    • sbyte -> uint
    • sbyte -> ulong
    • short -> uint
    • short -> ulong
    • int -> ulong
  • We no longer sign the .NET assemblies in Uno.
  • uno disasm has been removed on macOS, as it's has been broken for a while and there's essentially no users.

1.9.0-rc3

24 May 11:55
Compare
Choose a tag to compare
1.9.0-rc3 Pre-release
Pre-release

This is a prerelease of Fuse.

If you find a bug, please submit an issue to either

depending on where in the Fuse platform you believe the issue belongs.

Highlights

  • Fuse is now entering a new era as free open-source software, so all features in Fuse Studio plus premiumlibs now available to everyone!

Changes since v1.9.0-rc2

Fuselibs

  • Fuse.Views
    • Fixed broken layout on Android

Changes since v1.9.0-rc1

Fuselibs

  • Fuse.Views
    • Fixed broken compilation due to a bad merge.
    • Fixed a crash when pushing the back-button on Android.

Changes since v1.8

Fuse Studio

  • Problems View:
    • New design makes problems easier to understand
    • Added new types of problems to Problems view. ie: Build Errors
  • Remove old sketch importer, import Sketch symbols using the new Sketch importer instead.
    • Add Sketch files to watch in Fuse Studio from Project/Sketch import-dialog or use command line fuse import <file>.sketch to import symbols from a single Sketch file. fuse import <project>.sketchFiles will import symbols from all files added from Fuse Studio.
  • Disabled drag and drop import using old Sketch importer.

Fuselibs

Android Layout

  • Fixed an issue causing an empty (Size = 0) layout to be performed on Android during app startup.

ScrollView

  • Implemented support for horizontal scrolling in ScrollViews inside a NativeViewHost on Android

Color Expressions

  • Added the functions darken, lighten, saturate, desaturate, scaleSaturation, scaleLightness and adjustHue for improved color handling in UX expressions.
  • Added the functions rgbaToHsla and hslaToRgba for color conversions in UX expressions.

Diagnostics

  • Improved diagnostics to provide UX source location on several kinds of errors.

DotNet/Preview Gradients

  • Gradient rendering in preview previously had some limitations in the ranges of StartPoint and EndPoint it could accept. This has been fixed: points inside and outside of the element render correctly now.

EdgeNavigator

  • Changed NavigateToggle to work without a NavigationContext and remove some potential errors.

LayoutMaster

  • Fixed a redundant layout invalidation when Element.LayoutMaster is changed. This would result in broken LayoutAnimation as multiple layouts could be triggered by a Change.

Layout

  • Fixed invalid layout caching when a relative container size changed. This affected ScrollView and DockPanel, in particular it may have resulted in stale sizes when the keyboard appeared, or orientation changed.

MapView

  • Fixed a crash when tapping the user's current location on iOS.
  • Fixed incorrect zoom factor changes when the location changed on iOS.

Router

  • Deprecated the GoUp behavior which causes unexpected behavior and defects. This fixes an issue of pressing the hardware back button at the root state (on Android). The old behavior can be had by setting GoBackBehavior="GoBackAndUp" on the router, but be aware it is deprecated and will be removed.
  • Added Router.BackAtRootPressed to allow intercepting a back button action on the root page.

Video

  • Fixed issue where Video on Android could end up not finding the rotation metadata on its video source
  • Fixed issue where Video on iOS could render incorrect on some rotations
  • Removed size flip in VideoVisual, looks like this used to work due to bug dependency. But the native video players flip the size themselves.
  • Add VideoOrientationPage to ManualTestApp, this page tests video with mp4 files with different rotations in their metadata section.
  • Use proper transforms for rotation in the video rendering code

WrapPanel / WrapLayout

  • Fixed WrapPanel to update its layout when a layout property changes.

Uno

UnoCore

  • Marked the following methods as obsolete. To get the old behavior, use Uno.Math.Floor(x + 0.5f) instead.
    • Uno.Math.Round(float)
    • Uno.Math.Round(float2)
    • Uno.Math.Round(float3)
    • Uno.Math.Round(float4)
  • Marked the following methods as obsolete. To get the old behavior, use Uno.Math.Round(double, int) instead.
    • Uno.Math.Round(float, int)
    • Uno.Math.Round(float2, int)
    • Uno.Math.Round(float3, int)
    • Uno.Math.Round(float4, int)
  • Math.Round(double, int) now throws ArgumentOutOfRangeException if digits are less than zero or larger than 15. This matches .NET behavior.
  • Fixed a bug where Math.Round(double, int) with large, finite inputs would produce infinities.
  • Math.Abs(int.MinValue) now throws OverflowException. This matches .NET behavior.
  • Added overloads of Math.Abs, matching .NET:
    • Math.Abs(sbyte)
    • Math.Abs(short)
    • Math.Abs(long)
  • Removed long obsolete importers:
    • ArrayImporter
    • BufferImporter
    • FontFaceImporter
    • SpriteFontImporter
    • IndexBufferImporter
    • Texture2DFileImporter
    • Texture2DImporter
    • TextureCubeFileImporter
    • TextureCubeImporter
    • VertexBufferImporter
  • Marked the following methods as obsolete. Those pulled in a big dependency that is currently unused.
    • Uno.Graphics.Texture2D.Load(BundleFile)
    • Uno.Graphics.Texture2D.Load(string)
    • Uno.Graphics.Texture2D.Load(string, byte[])

.NET

  • Fixed a code-generator bug where unsigned modulo got treated like signed modulo, causing negative values in the result.
  • Fixed a code-generator bug where ulong values larger than long.MaxValue didn't get sign-extended correctly.
  • Fixed a code-generator bug where signed division was used instead of unsigned division, leading to incorrect results for big dividends.

Uno Compiler

  • The following unsafe implicit casts has been turned to explicit casts. This matches C# behavior, and should avoid unexpected overflows:
    • sbyte -> ushort
    • sbyte -> uint
    • sbyte -> ulong
    • short -> uint
    • short -> ulong
    • int -> ulong
  • We no longer sign the .NET assemblies in Uno.
  • uno disasm has been removed on macOS, as it's has been broken for a while and there's essentially no users.

1.9.0-rc2

23 May 12:24
Compare
Choose a tag to compare
1.9.0-rc2 Pre-release
Pre-release

This is a prerelease of Fuse.

If you find a bug, please submit an issue to either

depending on where in the Fuse platform you believe the issue belongs.

Highlights

  • Fuse is now entering a new era as free open-source software, so all features in Fuse Studio plus premiumlibs now available to everyone!

Changes since v1.9.0-rc1

Fuselibs

  • Fuse.Views
    • Fixed broken compilation due to a bad merge.
    • Fixed a crash when pushing the back-button on Android.

Changes since v1.8

Fuse Studio

  • Problems View:
    • New design makes problems easier to understand
    • Added new types of problems to Problems view. ie: Build Errors
  • Remove old sketch importer, import Sketch symbols using the new Sketch importer instead.
    • Add Sketch files to watch in Fuse Studio from Project/Sketch import-dialog or use command line fuse import <file>.sketch to import symbols from a single Sketch file. fuse import <project>.sketchFiles will import symbols from all files added from Fuse Studio.
  • Disabled drag and drop import using old Sketch importer.

Fuselibs

Android Layout

  • Fixed an issue causing an empty (Size = 0) layout to be performed on Android during app startup.

ScrollView

  • Implemented support for horizontal scrolling in ScrollViews inside a NativeViewHost on Android

Color Expressions

  • Added the functions darken, lighten, saturate, desaturate, scaleSaturation, scaleLightness and adjustHue for improved color handling in UX expressions.
  • Added the functions rgbaToHsla and hslaToRgba for color conversions in UX expressions.

Diagnostics

  • Improved diagnostics to provide UX source location on several kinds of errors.

DotNet/Preview Gradients

  • Gradient rendering in preview previously had some limitations in the ranges of StartPoint and EndPoint it could accept. This has been fixed: points inside and outside of the element render correctly now.

EdgeNavigator

  • Changed NavigateToggle to work without a NavigationContext and remove some potential errors.

LayoutMaster

  • Fixed a redundant layout invalidation when Element.LayoutMaster is changed. This would result in broken LayoutAnimation as multiple layouts could be triggered by a Change.

Layout

  • Fixed invalid layout caching when a relative container size changed. This affected ScrollView and DockPanel, in particular it may have resulted in stale sizes when the keyboard appeared, or orientation changed.

MapView

  • Fixed a crash when tapping the user's current location on iOS.
  • Fixed incorrect zoom factor changes when the location changed on iOS.

Router

  • Deprecated the GoUp behavior which causes unexpected behavior and defects. This fixes an issue of pressing the hardware back button at the root state (on Android). The old behavior can be had by setting GoBackBehavior="GoBackAndUp" on the router, but be aware it is deprecated and will be removed.
  • Added Router.BackAtRootPressed to allow intercepting a back button action on the root page.

Video

  • Fixed issue where Video on Android could end up not finding the rotation metadata on its video source
  • Fixed issue where Video on iOS could render incorrect on some rotations
  • Removed size flip in VideoVisual, looks like this used to work due to bug dependency. But the native video players flip the size themselves.
  • Add VideoOrientationPage to ManualTestApp, this page tests video with mp4 files with different rotations in their metadata section.
  • Use proper transforms for rotation in the video rendering code

WrapPanel / WrapLayout

  • Fixed WrapPanel to update its layout when a layout property changes.

Uno

UnoCore

  • Marked the following methods as obsolete. To get the old behavior, use Uno.Math.Floor(x + 0.5f) instead.
    • Uno.Math.Round(float)
    • Uno.Math.Round(float2)
    • Uno.Math.Round(float3)
    • Uno.Math.Round(float4)
  • Marked the following methods as obsolete. To get the old behavior, use Uno.Math.Round(double, int) instead.
    • Uno.Math.Round(float, int)
    • Uno.Math.Round(float2, int)
    • Uno.Math.Round(float3, int)
    • Uno.Math.Round(float4, int)
  • Math.Round(double, int) now throws ArgumentOutOfRangeException if digits are less than zero or larger than 15. This matches .NET behavior.
  • Fixed a bug where Math.Round(double, int) with large, finite inputs would produce infinities.
  • Math.Abs(int.MinValue) now throws OverflowException. This matches .NET behavior.
  • Added overloads of Math.Abs, matching .NET:
    • Math.Abs(sbyte)
    • Math.Abs(short)
    • Math.Abs(long)
  • Removed long obsolete importers:
    • ArrayImporter
    • BufferImporter
    • FontFaceImporter
    • SpriteFontImporter
    • IndexBufferImporter
    • Texture2DFileImporter
    • Texture2DImporter
    • TextureCubeFileImporter
    • TextureCubeImporter
    • VertexBufferImporter
  • Marked the following methods as obsolete. Those pulled in a big dependency that is currently unused.
    • Uno.Graphics.Texture2D.Load(BundleFile)
    • Uno.Graphics.Texture2D.Load(string)
    • Uno.Graphics.Texture2D.Load(string, byte[])

.NET

  • Fixed a code-generator bug where unsigned modulo got treated like signed modulo, causing negative values in the result.
  • Fixed a code-generator bug where ulong values larger than long.MaxValue didn't get sign-extended correctly.
  • Fixed a code-generator bug where signed division was used instead of unsigned division, leading to incorrect results for big dividends.

Uno Compiler

  • The following unsafe implicit casts has been turned to explicit casts. This matches C# behavior, and should avoid unexpected overflows:
    • sbyte -> ushort
    • sbyte -> uint
    • sbyte -> ulong
    • short -> uint
    • short -> ulong
    • int -> ulong
  • We no longer sign the .NET assemblies in Uno.
  • uno disasm has been removed on macOS, as it's has been broken for a while and there's essentially no users.

1.9.0-rc1

16 May 11:34
Compare
Choose a tag to compare
1.9.0-rc1 Pre-release
Pre-release

This is a prerelease of Fuse.

If you find a bug, please submit an issue to either

depending on where in the Fuse platform you believe the issue belongs.

Highlights

  • Fuse is now entering a new era as free open-source software, so all features in Fuse Studio plus premiumlibs now available to everyone!

Changes since v1.8

Fuse Studio

  • Problems View:
    • New design makes problems easier to understand
    • Added new types of problems to Problems view. ie: Build Errors
  • Remove old sketch importer, import Sketch symbols using the new Sketch importer instead.
    • Add Sketch files to watch in Fuse Studio from Project/Sketch import-dialog or use command line fuse import <file>.sketch to import symbols from a single Sketch file. fuse import <project>.sketchFiles will import symbols from all files added from Fuse Studio.
  • Disabled drag and drop import using old Sketch importer.

Fuselibs

Android Layout

  • Fixed an issue causing an empty (Size = 0) layout to be performed on Android during app startup.

ScrollView

  • Implemented support for horizontal scrolling in ScrollViews inside a NativeViewHost on Android

Color Expressions

  • Added the functions darken, lighten, saturate, desaturate, scaleSaturation, scaleLightness and adjustHue for improved color handling in UX expressions.
  • Added the functions rgbaToHsla and hslaToRgba for color conversions in UX expressions.

Diagnostics

  • Improved diagnostics to provide UX source location on several kinds of errors.

DotNet/Preview Gradients

  • Gradient rendering in preview previously had some limitations in the ranges of StartPoint and EndPoint it could accept. This has been fixed: points inside and outside of the element render correctly now.

EdgeNavigator

  • Changed NavigateToggle to work without a NavigationContext and remove some potential errors.

LayoutMaster

  • Fixed a redundant layout invalidation when Element.LayoutMaster is changed. This would result in broken LayoutAnimation as multiple layouts could be triggered by a Change.

Layout

  • Fixed invalid layout caching when a relative container size changed. This affected ScrollView and DockPanel, in particular it may have resulted in stale sizes when the keyboard appeared, or orientation changed.

MapView

  • Fixed a crash when tapping the user's current location on iOS.
  • Fixed incorrect zoom factor changes when the location changed on iOS.

Router

  • Deprecated the GoUp behavior which causes unexpected behavior and defects. This fixes an issue of pressing the hardware back button at the root state (on Android). The old behavior can be had by setting GoBackBehavior="GoBackAndUp" on the router, but be aware it is deprecated and will be removed.
  • Added Router.BackAtRootPressed to allow intercepting a back button action on the root page.

Video

  • Fixed issue where Video on Android could end up not finding the rotation metadata on its video source
  • Fixed issue where Video on iOS could render incorrect on some rotations
  • Removed size flip in VideoVisual, looks like this used to work due to bug dependency. But the native video players flip the size themselves.
  • Add VideoOrientationPage to ManualTestApp, this page tests video with mp4 files with different rotations in their metadata section.
  • Use proper transforms for rotation in the video rendering code

WrapPanel / WrapLayout

  • Fixed WrapPanel to update its layout when a layout property changes.

Uno

UnoCore

  • Marked the following methods as obsolete. To get the old behavior, use Uno.Math.Floor(x + 0.5f) instead.
    • Uno.Math.Round(float)
    • Uno.Math.Round(float2)
    • Uno.Math.Round(float3)
    • Uno.Math.Round(float4)
  • Marked the following methods as obsolete. To get the old behavior, use Uno.Math.Round(double, int) instead.
    • Uno.Math.Round(float, int)
    • Uno.Math.Round(float2, int)
    • Uno.Math.Round(float3, int)
    • Uno.Math.Round(float4, int)
  • Math.Round(double, int) now throws ArgumentOutOfRangeException if digits are less than zero or larger than 15. This matches .NET behavior.
  • Fixed a bug where Math.Round(double, int) with large, finite inputs would produce infinities.
  • Math.Abs(int.MinValue) now throws OverflowException. This matches .NET behavior.
  • Added overloads of Math.Abs, matching .NET:
    • Math.Abs(sbyte)
    • Math.Abs(short)
    • Math.Abs(long)
  • Removed long obsolete importers:
    • ArrayImporter
    • BufferImporter
    • FontFaceImporter
    • SpriteFontImporter
    • IndexBufferImporter
    • Texture2DFileImporter
    • Texture2DImporter
    • TextureCubeFileImporter
    • TextureCubeImporter
    • VertexBufferImporter
  • Marked the following methods as obsolete. Those pulled in a big dependency that is currently unused.
    • Uno.Graphics.Texture2D.Load(BundleFile)
    • Uno.Graphics.Texture2D.Load(string)
    • Uno.Graphics.Texture2D.Load(string, byte[])

.NET

  • Fixed a code-generator bug where unsigned modulo got treated like signed modulo, causing negative values in the result.
  • Fixed a code-generator bug where ulong values larger than long.MaxValue didn't get sign-extended correctly.
  • Fixed a code-generator bug where signed division was used instead of unsigned division, leading to incorrect results for big dividends.

Uno Compiler

  • The following unsafe implicit casts has been turned to explicit casts. This matches C# behavior, and should avoid unexpected overflows:
    • sbyte -> ushort
    • sbyte -> uint
    • sbyte -> ulong
    • short -> uint
    • short -> ulong
    • int -> ulong
  • We no longer sign the .NET assemblies in Uno.
  • uno disasm has been removed on macOS, as it's has been broken for a while and there's essentially no users.