rlOpenXR
rlOpenXR copied to clipboard
OpenXR binding for the Raylib game framework
rlOpenXR
OpenXR VR bindings for Raylib.
https://user-images.githubusercontent.com/14093640/191044573-6c4ac13d-6866-4fa6-bc4d-c63c770cf7a8.mp4
Design decisions
To stay close to the design of Raylib. A concise yet powerful subset of OpenXR is exposed. Most of the API is there to wrap the interaction with Raylib (Mostly rendering). And covering very common usage, eg Head/Hands position.
Minimum Raylib version
Raylib 4.2
Features
Completed
- [x] Rlgl rendering backend
- [x] Builtin Head pose state
- [x] Hand interface abstraction
Planned
- [ ] Controller state rendering
- [ ] More convenient Input API
- [ ] Virtual hand system and rendering
Platforms
Supported
- [x] Windows
Planned
- [ ] Linux
- [ ] Android (Targeting standalone HMDs like Quest 2)
- [ ] WebXR
No plans
- [ ] Varjo 4 screen HMDs
CMake options
RlOpenXR uses CMake (minimum 3.15) as it's build system.
Option | Description | Default |
---|---|---|
RLOPENXR_BUILD_EXAMPLES |
Build RLOpenXR Examples | On |
Using the rlOpenXR as a dependency
Out of the box rlOpenXR only supports CMake. There are a few options on how to add a library as a dependency in CMake:
Subdirectory
Download the source for rlOpenXR into a subfolder in your project, for example: "third_party/rlOpenXR".
This can be done via git: git clone https://github.com/FireFlyForLife/rlOpenXR.git
.
Or by manually going to the github repo and going to "Code" -> "Download Zip".
Then in your CMakeLists.txt file for your project, add the following lines:
add_subdirectory(third_party/rlOpenXR)
# ...
target_link_libraries(YourProject PUBLIC rlOpenXR) # Add rlOpenXR as a dependency to your project
FetchContent
In your CMakeLists.txt file, add the following lines:
FetchContent_Declare(
rlOpenXR
GIT_REPOSITORY https://github.com/FireFlyForLife/rlOpenXR.git
GIT_TAG "v1.1.0"
)
FetchContent_MakeAvailable(rlOpenXR)
# ...
target_link_libraries(YourProject PUBLIC rlOpenXR) # Add rlOpenXR as a dependency to your project
In the FetchContent_MakeAvailable()
call, CMake will download the repository via Git, and add it parse it's CMake file.