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
new
SourceInstance methods
close
Sourceopen
openvr_api.dll の解決、OpenVR の初期化、FnTable の取得までを行う。 どこで失敗しても SteamVR 連携を無効にするだけで、本体の常駐は続けられる。
初期化には Background を渡す。 SteamVR が動いていなければ、この種別だけが SteamVR を起こさずに失敗する(issue #12)。 本ツールが OpenVR に求めるのは vrmanifest の登録と自動起動の設定、 そして VREvent_Quit の受け取りだけであり、いずれも overlay の描画を伴わない。
SteamVR を起動しないことは、初期化の成功ではなく失敗として表れる。 呼び出し側はこの失敗を異常として扱わず、60 秒ごとに開き直す。