Skip to content

1.4.0 - Context-aware input

Compare
Choose a tag to compare
@JoeLudwig JoeLudwig released this 29 Nov 19:25
· 101 commits to master since this release

Custom context-aware input in gagets:

  • Added custom actions, action sets, and bindings to gadgets. Gadgets can add "input" to their permissions and then use Av().registerInput(...) to send their actions to SteamVR for binding. Gadgets that register input this way will appear in SteamVR as standalone applications so users can rebind the actions per-gadget. These actions use OpenXR-style interaction profile paths and input paths to make forward compatibility easier when Aardvark eventually switches to OpenXR.
  • Added many helper enum values for various interaction profiles and input paths.
  • Split the actions in the hands into three action sets: default, interact, and move. Default is always present, but only includes the "show ray" action, which is fairly innocuous. Interact is only active when that hand is next to a thing that can be grabbed, will produce a menu, or can be clicked on. Move is only active when a gadget is actively being grabbed. Interact and Move both override any input to the underlying app on those buttons or controls.
  • Overriding app input requires that the "globalActionSetPriority" SteamVR setting be set. Aardvark will now prompt the user at startup if that's not the case and will set the setting if the user agrees.
  • Bindings are included for Knuckles, Touch, and Windows MR controllers, but of those only Knuckles has been tested. If try with one of the other controllers and run into problems, please open an issue and I'll fix it.

Other fixes:

  • The messagebox API will now send the prompt to be displayed when the messagebox gadget connects even if showPrompt was called before that point.
  • The messagebox will now shrink its text a bit when the caption is exceptionally long.
  • Added reading and setting settings to the API for gadgets with the "settings" permission. See getBoolSetting, getStringSetting, getNumberSetting, and setSetting on the Aardvark (Av()) object. Only bool settings have actually been tested through these APIs, so if you run into any trouble with number or settings, please open an issue with the details and I'll fix it.
  • Ran into and fixed a hang on shutdown. Aardvark should be more resistent to that kind of thing in the future.