#open-vr #bindings #overlay

ovr_overlay

OpenVR叠加层的Rust绑定

1个不稳定版本

0.0.0 2022年4月25日

#7 in #open-vr

MIT/Apache

5.5MB
576

ovr_overlay

openvr库的替代品,它使用autocxx而不是bindgen,并专注于提供对叠加层的支持。

目标

新应用程序可能应该寻求使用OpenXR而不是OpenVR。然而,在OpenXR中你无法做到的事情,你可以在OpenVR中做到,即创建叠加层。

此绑定允许你使用rust创建OpenVR叠加层,但并不一定提供对OpenVR API其余部分的绑定。如果你发现缺少功能(你肯定会发现缺少的功能),提交一个PR!

为什么不基于C API构建绑定?

C API在官方仓库中直接损坏。最新版本甚至无法编译,已经有一年多时间了。[链接](https://github.com/ValveSoftware/openvr/issues/1642)。更糟糕的是,C绑定没有与C++ API相同的保护功能,放弃了使用const等。此外,C API是从C++自动生成的,并且不像C++那样有文档。

为什么不使用现有的openvr库?

该库已经超过两年没有更新了。我不怪他们,时间应该花在为Rust提供OpenXR的一等支持上,因为OpenVR正在走向淘汰。

不幸的是,该库缺少所有的叠加层功能,由于我目前主要专注于叠加层,我需要一个替代品。

语义版本控制

在我们达到0.1.0或更高版本之前,我们不提供语义版本控制保证。在此之前,一切和任何东西都可能以破坏性的方式改变。

构建

我们将OpenVR库作为git子模块进行打包。所以你可以使用--recursive克隆,或者克隆后运行git submodule update --init

你还需要安装libclang,因为它是cxxautocxx库生成绑定所必需的。

许可证

此仓库中的所有代码都根据你的选择,在以下许可证下双许可:

这意味着你可以选择你喜欢的许可证!这种双许可方法在Rust生态系统中被视为标准,并且包含两者有很好的理由。

除非您明确声明,否则根据Apache-2.0许可证定义,您有意提交以包含在作品中的任何贡献,应按上述方式双许可,不附加任何额外条款或条件。

依赖项

~1.5–6MB
~113K SLoC