Skip to content

Ultraviolet Framework 1.3.15

Compare
Choose a tag to compare
@tlgkccampbell tlgkccampbell released this 23 Apr 21:03
· 1298 commits to develop since this release

Core

  • Localization databases will attempt to fall back to another culture with the same language as the current culture, rather than defaulting to American English. The en-US culture will still be used as a fallback of last resort if no appropriate same-language cultures exist in the database.

Content

  • Implemented watched content. You can now indicate that you'd like Ultraviolet to watch an asset file for changes by loading it using one of the new LoadWatched<T>() methods on ContentManager.
    • If Ultraviolet believes that it's running inside of a Visual Studio solution folder, it will attempt to watch the original solution files, rather than the copies that are placed in the bin folder at compilation time.
    • If reloading a file would cause an exception to be raised, the last known good version of the file is automatically restored.

Graphics

  • FIX: Cleaned up shaders for core effects and improved cross-platform compatibility.
  • FIX: Added some missing constructors to the SpriteFrame structure.
  • FIX: DrawScaledSprite() was ignoring the effects and layerDepth parameters [from Scellow]
  • Added GetAnimation() method to SpriteAnimationController [from Scellow]

Input

  • Added GamePadButton values corresponding to each of the supported analog axes. Corresponding button events will be generated whenever any of these axes cross a certain threshold value (by default, 90% of their maximum value).

Presentation

  • FIX: Tab navigation should now move correctly through controls using KeyboardNavigationMode.Once.
  • Reduced memory usage of dependency objects.
  • Implemented commands, command bindings, and input bindings.
    • Commands in UPF work basically the same way as they do in WPF; see this MSDN article for an overview.
    • Updated TextEditor to use commands.
    • Updated HScrollBar and VScrollBar to use commands.
    • Updated ScrollViewer to use commands.
  • Added a ScrollBar control. This control can represent either a horizontal or vertical scroll bar by changing the value of its Orientation dependency property.
  • Added a Slider control. This control can represent either a horizontal or vertical slider by changing the value of its Orientation dependency property.
  • Added support for deferred scrolling to ScrollViewer
  • Added support for watched content. Modifying a view definition or style sheet will now cause the corresponding view to be automatically reloaded at runtime.
    • You must opt into this feature by setting WatchViewFilesForChanges to true when configuring the Ultraviolet context.
    • You can make sure that the global style sheet is automatically reloaded by making use of the new CompositeUvssDocument class -- see the debug application for an example of how to do this.
    • Reloading views should be tolerant of errors, but the system wasn't originally designed to handle this scenario, so some things may have fallen through the cracks. If changing a file causes the application to crash from an unhandled exception, please report it as a bug.
  • Made some adjustments to layout rounding (again).
  • Made some adjustments to navigation using game pads.