class

SteamVR::OpenVRRepository

Inherits SteamVR::Repository < Reference < Object

openvr_api.dll を実行時に解決して呼ぶ Repository 実装(仕様書 4.6 節)。

インターフェースバージョンは openvr_capi.h の記述に合わせて固定する。 openvr_api.dll は後方互換に保たれているため、本ツールが要求する版が古い分には問題にならないが、 逆に SteamVR 側が古くて要求する版を持たない場合は FnTable の並びが合わない。 そのため起動時に VR_IsInterfaceVersionValid で検証し、通らなければ SteamVR 連携を無効にする。

Constants

IVRAPPLICATIONS_VERSION = "IVRApplications_008"
IVRSYSTEM_VERSION = "IVRSystem_026"
Log = ::Log.for("steamvr")

Constructors

Instance methods

acknowledge_quit

終了処理に入る前に SteamVR へ応答する(AcknowledgeQuit_Exiting)。

Source
add_application_manifest(manifest_path : String) : Bool
Source
auto_launch?(app_key : String) : Bool
Source
close
Source
open

openvr_api.dll の解決、OpenVR の初期化、FnTable の取得までを行う。 どこで失敗しても SteamVR 連携を無効にするだけで、本体の常駐は続けられる。

初期化には Background を渡す。 SteamVR が動いていなければ、この種別だけが SteamVR を起こさずに失敗する(issue #12)。 本ツールが OpenVR に求めるのは vrmanifest の登録と自動起動の設定、 そして VREvent_Quit の受け取りだけであり、いずれも overlay の描画を伴わない。

SteamVR を起動しないことは、初期化の成功ではなく失敗として表れる。 呼び出し側はこの失敗を異常として扱わず、60 秒ごとに開き直す。

Source
opened?

初期化に成功していて、以降の呼び出しが有効か。

Source
quit_requested?

溜まっているイベントを読み切り、終了要求が含まれていたかを返す。

Source
remove_application_manifest(manifest_path : String) : Bool
Source
set_auto_launch(app_key : String, enabled : Bool) : Bool
Source