Already have an account? Log in
Released 10 months ago
Please remember to
after upgrading Fuse.
Limitto limit the number of items being displayed
Added a new text renderer, which can be used for
Text on both desktop and on device, and for
TextView on desktop. The renderer is currently disabled by default and can be enabled by building with
-DUSE_HARFBUZZ. The new renderer brings the following features:
Textelements now have an experimental
LoadAsyncproperty which, when set to
true, enables loading of the text element on a background thread.
Note that the new text renderer currently does not pass Apple's App Store testing. Therefore it should not be used for iOS release builds. This will be fixed in an upcoming Fuse release.
EventEmitter, which is based on the API of Node's
EventEmitterclass. Though the old way remains working, the recommended way to subscribe to events has changed from
Module.onSomeEvent = myHandlerto
Module.on('someEvent', myHandler). With the new event system there's no longer a risk of overwriting the handler that someone else set. There's also several convenience methods like
promiseOf. Check out the docs!
Each.Limitthat allow limiting the number of items being displayed.
Navigatorobjects and switching to/from the embedded pages.
Observableon two different
<TextInput/>s could end up in an infinite
<TextInput />in an area outside the bounds of the text would not focus the
encodeBufferfunctions to decode between ArrayBuffer and Base64
Uno.Net.Sockets.TcpListenerhelper-class for hosting TCP servers. It's a subset of .NETs System.Net.Sockets.TcpListener class, and resolves to that implementation for .NET-targets.
#000 float3(0,0,0) #FFFF float4(1,1,1,1) #FF0000 float3(1,0,0) #FF0000FF float4(1,0,0,1) 24.0px new Uno.UX.Size(24.0f, Uno.UX.Unit.Pixels) 32.0pt new Uno.UX.Size(32.0f, Uno.UX.Unit.Points)
Before Foreign Code there was Bindings. The bindings were an attempt to bring Android and iOS functionality into Uno based on the best practices of the time. During the course of the implementation we found many shortcomings with those approaches and this eventually culminated in the creation of Foreign Code (see this medium article for the full story).
Foreign Code has since proved it's worth, it handles all that our Legacy Bindings could and plenty more.
Since January we have put forward Foreign Code as the standard way of interacting with native APIs, and a couple of releases back we officially deprecated the legacy Bindings.
The next release of Fuse will not ship with the legacy Bindings.
While foreign code is the way to go these days we understand that there might still be codebases out there based on the Bindings. If this affects you then feel free to reach out to us, we are happy to offer advice on how you can refactor to foreign code.
The following build targets will generate a warning if used:
uno build webgl uno build ffos
Fuse.Entities, as well as the classes
Fuse.Gestureshave been marked as obsolete. This is undocumented code that implement very basic 3D rendering, but haven't been in use for a long time, and is largely unmaintained at this point.
Fuse.Drawing.Pathsas well as
Fuse.Controls.Primitiveshas been marked as obsolete. This is either undocumented code that implement very basic path-rendering, but is known to be broken in many simple cases, and is largely unmaintained at this point.
Fuse.Entitiesno longer gets forwarded through the
Fuse-package. If you're using one of these, you can add these packages manually to your project while transitioning.
The following will now generate a warning if compiled:
import Uno.Array<T>() import Uno.Buffer() import Uno.Content.Fonts.FontFace() import Uno.Content.Fonts.SfdFont() import Uno.Content.Fonts.SpriteFont() import Uno.Content.Models.Model() apply Uno.Content.Models.Model() import Uno.Graphics.IndexBuffer() import Uno.Graphics.Texture2D() import Uno.Graphics.TextureCube() import Uno.Graphics.VertexBuffer()
These APIs are scheduled for removal in an upcoming release, because we no longer want to maintain dependencies to the proprietary FBX SDK from Autodesk in our core product.