-
Notifications
You must be signed in to change notification settings - Fork 9
Aardvark 5.3 changelog
Aardvark.Base 5.3 moves from .NET 6 (support ends on November 12, 2024) to .NET 8 and F# 8. We use this transition as an opportunity to release a new major version with some breaking changes that have been pending for some time. This document details the changes to help developers port their applications to the new version.
The built-in dependency on SixLabors.ImageSharp
has been removed from Aardvark.Base.Tensors
in favor of a separate package. If you want to continue using the ImageSharp loader simply reference the Aardvark.PixImage.ImageSharp
package. You may also use another loader from the Aardvark.Data repository.
Currently, Aardvark.PixImage.ImageSharp
only supports SixLabors.ImageSharp
2.x, which is no longer being actively developed. We plan to migrate to version 3.x (.NET Standard 2.1 only) in the future. Having a separate package allows us to do this without being forced to drop support for .NET Standard 2.0 for the whole Aardvark platform (at least it should be less of a hassle to support both).
Some changes to PixImage
and related types may require your attention. IPix
and related interfaces and types have been removed or renamed:
-
IPixImage
is renamed toIPix
-
PixImageCube
andPixCubeMap
: UsePixCube
instead. -
PixMipMap2d
: UsePixImageMipMap
instead.
PixImageMipMap
has been reworked and cleaned up:
- Removed generic
PixImageMipMap<T>
- Removed
MipMapOptions
, staticCreate()
method takes multiple optional parameters instead. The default interpolation method is now linear.
Both PixImage
and PixVolume
have been cleaned up and made more consistent:
- Made
Array
andData
consistent with tensors whereArray
is untyped andData
is typed. As a consequence, the non-genericPixImage
andPixVolume
only defineArray
. - Deprecated
PixImage.IntStride
in favor ofStride
andStrideL
- Added
PixVolume.BytesPerChannel
- Added
PixVolume.ToCanonicalDenseLayout
- Added
Add PixImage<T>.Transformed
(abstractPixImage.Transformed
is renamed toPixImage.TransformedPixImage
) - Removed obsolete loading API
Some SRTP member methods for FSharpMath
functions have been renamed due to conflicts with methods introduced in .NET 7 (e.g. Double.Log2
). If you are using FSharpMath
with custom types you will have to rename the static methods:
-
Acosh
->Acoshb
-
Asinh
->Asinhb
-
Atanh
->Atanhb
-
Cbrt
->CubeRoot
-
Log2
->LogBinary
-
CopySign
->CopySgn
-
Lerp
->LinearInterp
-
Exp2
->PowerOfTwo
- Added
Aardvark.Base.Fonts
from theAardvark.Rendering
repository. - Optimized partial active patterns by using struct representation
- Added F# tensor utilities and math functions using SRTP
- Fixed return type of
LengthSquared
for integer-based vectors. Now returns integer instead of floating-point values. - Added missing readonly modifiers for structs
- Renamed
CIeLuvf
toCieLuvf
- Deprecated
GenericValues.zero
- Added
IPixLoader.CanEncode
andIPixLoader.CanDecode
. These members indicate if a loader should be considered for saving and loading images respectively.
Some obsolete APIs have been removed:
- [Color] obsolete conversion functions
- [Color]
Parse()
overload with IFormatProvider parameter -
Async.AwaitTask
(already in FSharp.Core) Caching.cacheFunction
IDictionary.GetValueOrDefault
- broken
UnsafeCoerce
utilities -
CameraExtrinsics
andCameraIntrinsics
- float variants of
Constant
IPol.SlerpShortest
-
Cell.Parse()
with offset parameter M44x.PerspectiveProjectionTransformLH
Trafo.PerspectiveProjectionOpenGl
Trafo.PerspectiveProjectionLH
Trafo.OrthoProjectionOpenGl
-
RangeSet
andRangeSet64
-
RangeSet1*.insert
andwindow
-
Time
andTimeLink
ExecutableMemory
-
Dictionary.TryRemove
andGetOrAdd
-
Seq.forany
andArray.forany
(useexists
instead) -
Strings
module -
ConversionHelpers
lookup table utilities (use utilities fromLookupTable
module instead) - Assembler related types and functions (use Aardvark.Assembler instead)