#open-vr #vr #api-bindings #vive #steamvr

sys openvr_bindings

OpenVR API的不安全绑定。基于 https://github.com/rust-openvr/rust-openvr 的分叉版本,支持更新后的 OpenVR API。

2 个稳定版本

2.1.1 2024年3月13日
2.1.0 2024年3月12日

#1046 in 硬件支持


openvr-rs 中使用

MIT 许可证

1MB
32K SLoC

Rust 15K SLoC // 0.0% comments C# 8K SLoC // 0.0% comments C++ 8K SLoC // 0.1% comments Python 1K SLoC // 0.5% comments

openvr-bindings-rs

包含 OpenVR 库的功能定义。除非您知道自己在做什么,否则请使用 openvr-rs (尚未创建) 的 crate。

更新 OpenVR 的说明

  1. git submodule update --init --recursive (仅初始化检查)
  2. git submodule foreach git pull origin master 更新子模块
  3. cargo build --features "buildtime_bindgen" 更新绑定
  4. 如有必要,应用 OpenVR ABIs 故障的解决方案

OpenVR ABIs 故障的解决方案(仅限 Linux/macOS)

headers/openvr.h 中搜索打包的结构体,例如,#pragma pack( push, 4 )。目前,这将是

VRControllerState_t
RenderModel_TextureMap_t
RenderModel_t
VREvent_t

根据 bindgen 解析的内容,您需要将 #[repr(C)]#[repr(C, packed(4))] 预先放置在 bindings.rs 中的这些结构体替换为

#[repr(C)]
#[cfg_attr(unix, repr(packed(4)))]

无运行时依赖