openvr_bindings

Crates.ioopenvr_bindings
lib.rsopenvr_bindings
version2.1.1
sourcesrc
created_at2024-03-12 13:28:55.1306
updated_at2024-03-13 15:22:12.727857
descriptionUnsafe bindings for the OpenVR API. Forked version of https://github.com/rust-openvr/rust-openvr with updated support for newer OpenVR API.
homepage
repositoryhttps://github.com/kaitlynkittyy/openvr-bindings-rs
max_upload_size
id1170633
size2,437,159
kaitlynkitty (kaitlynkittyy)

documentation

README

openvr-bindings-rs

Contains function definitions for the OpenVR library. Use the openvr-rs (not yet created) crate, unless you know what you are doing.

Instructions for updating OpenVR

  1. git submodule update --init --recursive (initial checkout only)
  2. git submodule foreach git pull origin master to update the submodule
  3. cargo build --features "buildtime_bindgen" to update the bindings
  4. Apply the workaround for broken OpenVR ABIs, if required

Workaround for broken OpenVR ABIs (Linux/macOS only)

Search for packed structs in headers/openvr.h, i.e., #pragma pack( push, 4 ). Currently, that is:

VRControllerState_t
RenderModel_TextureMap_t
RenderModel_t
VREvent_t

Depending on what bindgen did parse, you have to replace a bunch of #[repr(C)] and #[repr(C, packed(4))] precending those structs in bindings.rs with:

#[repr(C)]
#[cfg_attr(unix, repr(packed(4)))]
Commit count: 0

cargo fmt