Skip to content

Aardvark Rendering 5.5 changelog

Martin edited this page Aug 7, 2024 · 2 revisions

Aardvark.Rendering 5.5 migrates to .NET 8 and Aardvark.Base 5.3. Apart from the changes in Aardvark.Base 5.3 some breaking changes in this release may require manual intervention.

Font provider

Custom fonts are now retrieved and bundled at compile time via the Aardvark.FontProvider type providers. The FontSquirrel and GoogleFonts modules have been removed. Either use the predefined fonts from the DefaultFonts module or a provider instead:

open Aardvark.FontProvider

module Fonts =

    module Types =
        type LeafyGlade = FontSquirrelProvider<Family = "Leafy glade", Bold = false, Italic = false>

    let LeafyGlade = Types.LeafyGlade.Font

Then you may use Fonts.LeafyGlade instead of FontSquirrel.Leafy_glade.Regular. There are also providers for loading Google fonts and fonts from a specific URL or path (GoogleFontProvider and FontProvider respectively).

Rename of Aardvark.SceneGraph.IO

The package and namespace Aardvark.SceneGraph.IO has been renamed to Aardvark.SceneGraph.Assimp. Simply find and replace all occurences of the string Aardvark.SceneGraph.IO.

Surfaces and effects

Types and APIs concerning surfaces and effects have been reworked. The ISurface interface has been removed. It was redundant apart from being a common interface for backend surfaces and effects via the FShadeSurface proxy type. Either use IBackendSurface or Surface instead.

The cases of the union type Surface have been renamed and modified:

  • Surface.FShadeSimple -> Surface.Effect
  • Surface.FShade -> Surface.Dynamic
  • Surface.Backend now contains an IBackendSurface

The support for layered rendering has been improved:

  • Added support for layered rendering with dynamic shaders. The signature of dynamic shader functions changed from EffectConfig -> DynamicSurface to IFramebufferSignature -> IndexedGeomtryMode -> DynamicSurface.
  • Added Effect.link and Effect.Link() (use instead of deprecated IRuntime.AssembleModule and removed EffectConfig utilities)
  • IRuntime.PrepareEffect now takes an optional topology for layered effects.

Other changes

  • [GLFW] Added support for stereo rendering with OpenGL
  • Moved some common types and modules (IndexedGeometry, Camera, DefaultSemantic) to separate Aardvark.Rendering.Common project.
  • Removed obsolete IResourceManager interface
  • Removed various other obsolete APIs
  • [GL] Cleanup up shader program creation and caching. Removed various methods for creating and compiling shaders from Context.
  • [Vulkan] Updated wrapper to Vulkan 1.3.282
  • [Vulkan] Removed unused Pipeline type
  • [Vulkan] Removed TextureFormat.ofGLSLType
Clone this wiki locally