Skip to content

v0.3.9

Latest
Compare
Choose a tag to compare
@maluoi maluoi released this 27 Feb 03:41
· 5 commits to master since this release

Another release wrapped up! This time around, I'm extremely thankful for last release's CI/CD, which made shipping preview builds joyful, and made this release much easier to put together! I'm also really thankful to @ponugotimanasaqc @austinbhale and @0y8w1x, who all contributed to this release.

This release we spent a lot of time working on UI and theming! SK's UI has never looked better, and grows increasingly more customizable by the day! A spatial anchor API was added in this release for those devices that support the MSFT anchor extensions (sorry Quest, next release!). We also did a lot of meaningful refactors to the platform code to enable the new SKSettings.mode options, as well as some exciting graphics features still down the road!

You can see the raw changelog here, but here's the high level overview:

Anchor API

  • Added an Anchor API for persistent spatial anchors! See here for an example of how to use them. Right now this only supports MSFT anchors and a stage space fallback. FB (Quest) anchors will be coming soon.

UI

  • Reworked the default StereoKit theme! #821 No layout values were changed, just art assets and shaders. If you still need the previous theme, it can be recovered like so.
  • Added UI.HSpace and UI.VSpace. UI.Space is now deprecated. #751
  • UI.ButtonImg now has an overload that allows tinting the image. #811
  • Added a "Grab Aura" to UI.Window elements that makes it easier to grab windows. #784
  • Added UI.Push/PopGrabAura to turn the aura on and off, and UI.GrabAuraEnabled to check the current state.
  • Added UI.SetElementColor, allowing you to override the default color category of UI elements. #795
  • Added UI.SetElementSound, allowing customization of UI element sounds. #795
  • Added UI.GenQuadrantMesh, a tool for generating more complex UI meshes easily.
  • Added sk_eye_offset to global shader variables for determining which eye is currently being rendered. #862

New API Features

  • Added SKSettings.mode, this replaces SKSettings.displayPreference, which is now deprecated. This change comes with a big rework of platform code, and new ways of running StereoKit! AppMode.Window allows for a simulator free flat window, and AppMode.Offscreen allows for running StereoKit without a display surface at all.
  • Added SKSettings.omitEmptyFrames, which tells SK to skip submitting a frame to the compositor if nothing has been drawn. This can be useful for performance of overlay applications that want to be listening for input, but don't always need to draw. #745
  • Added Device.Runtime, for the current OpenXR runtime's name. #871
  • Added signed/unsigned/float variants for the Tex.R16 texture format. #841
  • Added Tex.GetColorData for more format flexibility, this replaces Tex.GetColors, which is now deprecated. #859
  • Added a collection of built-in default Sprites. Sprite.ArrowLeft/Right/Up/Down, Sprite.Backspace, Sprite.Shift, and Sprite.Close.
  • Added Renderer.SkyMaterial for easy overriding of the skybox material. #863
  • Added World.Tracked, to tell if the device itself is currently tracking. #851

Changes

  • Fallback file-picker now has a list-mode, and uses a scroll bar! #834
  • Fallback keyboard has been refactored, and includes some visual improvements. #806
  • Updated to OpenXR Loader v1.0.34. #865
  • StereoKit threads now have an ID attached to them in debuggers.
  • Major overhaul of platform code to increase sharing of platform code and enable future features. #802
  • Platform.ForceFallbackKeyboard now applies even in the presence of a physical keyboard. #847
  • UI.Handle now will always FaceUser from the center of the Handle. #826
  • Log tool now shows performance graphs in addition to debug logs. #808
  • Overlay app now obeys explicit blend mode selection. #756, #757

Fixes

  • Fix for Tex.R8g8 textures on OpenGL platforms. #868
  • Various texture format/size fixes for OpenGL. #841
  • Fix Font.FromFile when referencing fonts in the Assets folder. #853
  • Fix UI.ButtonImgAt binding calling the incorrect native function. #850
  • Fix for no final audio effect when a UI element vanishes. #773
  • Fix an EGL attribute error for NVIDIAs Jetson Orin NX #838
  • Fix JNI cleanup errors on shutdown. #832
  • Fix for MSFT secondary view configuration. #750, #830
  • Fix for some bounds calculation issues. #769
  • Fix for model_node_info_get when key does not exist. #736, #737

Install or Update

Installation is via the dotnet templates and NuGet, please refer here for instructions!
https://stereokit.net/Pages/Guides/Getting-Started.html

If you already have a project using StereoKit, go to Project->Manage NuGet Packages, and update to this version! Do a full rebuild of your project afterwards.