Pre-release

@mortend mortend released this Dec 13, 2018

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
Assets 4