Releases: fuse-open/fuse-studio
Releases · fuse-open/fuse-studio
1.10.0-rc1
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
- https://github.com/fuse-open/fuse-studio
- https://github.com/fuse-open/fuselibs
- https://github.com/fuse-open/uno
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:
, andtel:
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 foruno build
anduno test
on all platforms.- Removed the
-O
flag onuno 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 onpartial
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
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
- https://github.com/fuse-open/fuse-studio
- https://github.com/fuse-open/uno
- https://github.com/fuse-open/fuse-studio
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
fromProject/Sketch import
-dialog or use command linefuse import <file>.sketch
to import symbols from a single Sketch file.fuse import <project>.sketchFiles
will import symbols from all files added fromFuse Studio
.
- Add Sketch files to watch in
- 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
- Added the functions
darken
,lighten
,saturate
,desaturate
,scaleSaturation
,scaleLightness
andadjustHue
for improved color handling in UX expressions. - Added the functions
rgbaToHsla
andhslaToRgba
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
andEndPoint
it could accept. This has been fixed: points inside and outside of the element render correctly now.
EdgeNavigator
- Changed
NavigateToggle
to work without aNavigationContext
and remove some potential errors.
LayoutMaster
- Fixed a redundant layout invalidation when
Element.LayoutMaster
is changed. This would result in brokenLayoutAnimation
as multiple layouts could be triggered by aChange
.
Layout
- Fixed invalid layout caching when a relative container size changed. This affected
ScrollView
andDockPanel
, 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 settingGoBackBehavior="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
This is a prerelease of Fuse.
If you find a bug, please submit an issue to either
- https://github.com/fuse-open/fuse-studio
- https://github.com/fuse-open/uno
- https://github.com/fuse-open/fuse-studio
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
fromProject/Sketch import
-dialog or use command linefuse import <file>.sketch
to import symbols from a single Sketch file.fuse import <project>.sketchFiles
will import symbols from all files added fromFuse Studio
.
- Add Sketch files to watch in
- 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
andadjustHue
for improved color handling in UX expressions. - Added the functions
rgbaToHsla
andhslaToRgba
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
andEndPoint
it could accept. This has been fixed: points inside and outside of the element render correctly now.
EdgeNavigator
- Changed
NavigateToggle
to work without aNavigationContext
and remove some potential errors.
LayoutMaster
- Fixed a redundant layout invalidation when
Element.LayoutMaster
is changed. This would result in brokenLayoutAnimation
as multiple layouts could be triggered by aChange
.
Layout
- Fixed invalid layout caching when a relative container size changed. This affected
ScrollView
andDockPanel
, 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 settingGoBackBehavior="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
This is a prerelease of Fuse.
If you find a bug, please submit an issue to either
- https://github.com/fuse-open/fuse-studio
- https://github.com/fuse-open/uno
- https://github.com/fuse-open/fuse-studio
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
fromProject/Sketch import
-dialog or use command linefuse import <file>.sketch
to import symbols from a single Sketch file.fuse import <project>.sketchFiles
will import symbols from all files added fromFuse Studio
.
- Add Sketch files to watch in
- 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
andadjustHue
for improved color handling in UX expressions. - Added the functions
rgbaToHsla
andhslaToRgba
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
andEndPoint
it could accept. This has been fixed: points inside and outside of the element render correctly now.
EdgeNavigator
- Changed
NavigateToggle
to work without aNavigationContext
and remove some potential errors.
LayoutMaster
- Fixed a redundant layout invalidation when
Element.LayoutMaster
is changed. This would result in brokenLayoutAnimation
as multiple layouts could be triggered by aChange
.
Layout
- Fixed invalid layout caching when a relative container size changed. This affected
ScrollView
andDockPanel
, 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 settingGoBackBehavior="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
This is a prerelease of Fuse.
If you find a bug, please submit an issue to either
- https://github.com/fuse-open/fuse-studio
- https://github.com/fuse-open/uno
- https://github.com/fuse-open/fuse-studio
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
fromProject/Sketch import
-dialog or use command linefuse import <file>.sketch
to import symbols from a single Sketch file.fuse import <project>.sketchFiles
will import symbols from all files added fromFuse Studio
.
- Add Sketch files to watch in
- 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
andadjustHue
for improved color handling in UX expressions. - Added the functions
rgbaToHsla
andhslaToRgba
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
andEndPoint
it could accept. This has been fixed: points inside and outside of the element render correctly now.
EdgeNavigator
- Changed
NavigateToggle
to work without aNavigationContext
and remove some potential errors.
LayoutMaster
- Fixed a redundant layout invalidation when
Element.LayoutMaster
is changed. This would result in brokenLayoutAnimation
as multiple layouts could be triggered by aChange
.
Layout
- Fixed invalid layout caching when a relative container size changed. This affected
ScrollView
andDockPanel
, 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 settingGoBackBehavior="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.