v2018.01 Released

Version 2018.01 of the Ultraviolet Framework has been released and the binaries are now available on NuGet.

Changelog

General

  • Upgraded to .NET Framework 4.7.
  • Upgraded to SDL2 2.0.7.
  • Added projects for .NET Standard 2.0.
  • Added projects for .NET Core 2.0.

NOTE: Running Ultraviolet on .NET Core should still be considered highly experimental. CoreCLR is an entirely new runtime that is still very much in development; accordingly, some of Ultraviolet's features aren't fully implemented and others may contain bugs. Expect further changes when .NET Core SDK 2.1 is released.

Core

  • Implemented a new dynamic library loader, Ultraviolet.Core.Native.LibraryLoader, which eliminates the need for DllMaps and should make loading native libraries easier and more consistent across platforms.
    • Not yet supported on Android or iOS.

Input

  • The SDL2 implementation of the Input subsystem will now automatically attempt to load game controller mappings, if they are available.
    • The subsystem attempts to load a file called gamecontrollerdb.txt from the game's root directory.
    • A community-maintained database can be found here.

Graphics

  • FIX: Ultraviolet GLSL directives (#ifver, #include, #includeres, etc.) will no longer be parsed if they are inside of multi-line comments.
  • An instance of Effect can now be created by directly loading either a .frag or a .vert file. The content processor will automatically load the corresponding vertex or fragment shader, so long as both shader files have the same name. For example, if you load foo.vert, the resulting program will be comprised of foo.vert and foo.frag.
  • Added the #param GLSL directive, with syntax #param "uniform_name". When this directive appears in a shader file, it indicates to Ultraviolet that an effect parameter needs to be created for the specified shader uniform. If the uniform cannot be located at runtime, Ultraviolet will throw an exception indicating that it was optimized out.

Presentation

  • The UPF binding expressions compiler has been rewritten to make use of the Microsoft.CodeAnalysis.CSharp package (also known as Roslyn), bringing support for the latest C# language features.
  • A .NET Standard 2.0 version of the Ultraviolet.Presentation.Compiler library is now available.