Care of /r/gamedev, Ultraviolet released version 1.3. In their own words, Ultraviolet is:
Ultraviolet is a cross-platform, .NET game development framework written in C# and released under the MIT License. It is heavily inspired by Microsoft’s XNA Framework, and is intended to be easy for XNA developers to quickly pick up and start using. However, unlike MonoGame and similar projects, Ultraviolet is not intended to be a drop-in replacement for XNA. Its current implementation is written on top of SDL2 and OpenGL, but its modular design makes it (relatively) easy to re-implement using other technologies if it becomes necessary to do so in the future.
At present, Ultraviolet officially supports Windows, Linux, Mac OS X, and Android. Support for additional platforms will be forthcoming in future releases.
From the release 1.3:
Core
- Ultraviolet Framework now supports Mac OS X.
Installer
- Installer will now install project templates for Visual Studio 2015.
- Installer will no longer install project templates for Visual Studio 2010.
- Installer will no longer install project templates for Visual Studio 2012.
Graphics
- Completely rewrote the text layout engine.
- Text layout engine now does a better job of inserting line breaks.
- Text layout engine now supports non-breaking spaces.
- Implemented glyph shaders.
- Glyph shaders allow custom logic to be applied to each glyph at the time it is rendered, allowing for complex visual effects.
- Added support for the
|shader|
formatting command.- Added methods to
TextRenderer
for specifying glyph shaders.Presentation
- Lots of miscellaneous fixes, refactorings, cleanup, and general improvements.
- UVML binding expressions been significantly improved.
- Binding expressions can now contain arbitrary C# 4.0 code, i.e.
{{2 + 2}}
or{{DateTime.Now}}
- Binding expressions must be compiled into an assembly using the new binding expressions compiler. This can be done ahead-of-time or at runtime on platforms which support it (Windows, Linux, OS X).
- Added arrow syntax for directly referencing elements in the same view, i.e.
{{foo->Value}}
- UVSS has been improved and has gained some new operators.
- UVSS parser now understands the inheritance relations between styled types.
- Added “navigation expression” operator (
|
) and “type conversion” operator (as)
- As
foo | bar as Baz
meaning “property bar on foo, which has type Baz.”- Added “logical child” operator (
>?
)
- As
x >? y
meaning “y is the logical child of x.”- Added “templated child” operator (
>>
)
- As
x >> y
meaning “y is the templated child of x.”- Added “exact type” operator (
!
)
- Referencing
TypeName
will apply the style to elements of typeTypeName
and any of its descendants. Qualifying this with the exact type operator, i.e.TypeName!
will cause the style to only apply to elements of that exact type.- Added support for touch devices.
- Implemented visual effects for elements.
- Implemented
BlurEffect
built-in effect.- Implemented
DropShadowEffect
built-in effect.- Implemented
ShaderEffect
built-in effect.- Implemented element transforms (render and layout).
- Implemented
TransformGroup
transform.- Implemented
IdentityTransform
transform.- Implemented
MatrixTransform
transform.- Implemented
RotateTransform
transform.- Implemented
ScaleTransform
transform.- Implemented
SkewTransform
transform.- Implemented
TranslateTransform
transform.- Implemented element adorners.
- Implemented keyboard and game pad navigation.
- Implemented tool tips.
- Implemented modal dialog boxes.
- Implemented cursor queries.
- Implemented
TabControl
.- Implemented
PasswordBox
.- Completely rewrote the
TextBox
control.
TextBox
can now edit multiple lines of text.TextBox
should now generate significantly less collection pressure while typing.
Ultraviolet is available on Github.