MCPcopy Index your code
hub / github.com/Ralith/openxrs

github.com/Ralith/openxrs @v0.21.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.21.1 ↗ · + Follow
1,660 symbols 2,317 edges 33 files 44 documented · 3% updated 12d ago★ 33513 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

OpenXRS

Documentation Crates.io License: MIT License: Apache 2.0

Rust bindings for the OpenXR virtual/augmented reality runtime API. Refer to the specification for detailed documentation on individual API calls.

openxr

The high-level bindings provide abstractions focusing on ergonomics and safety. Escape hatches to the raw API are exposed to support unforeseen requirements, and patterns that cannot be efficiently exposed in safe terms are preserved as unsafe.

The crate exposes a number of cargo features: - static builds in the Khronos OpenXR loader, which can then be accessed with Entry::linked(). This is the easiest way to get going, provided your environment has a working C++ compiler and CMake installation. - loaded allows access to a manually identified OpenXR implementation at run time. This allows for cases where a built-in Khronos loader, normally responsible for that task, cannot be used. - linked attempts to link to an OpenXR loader in the build environment. This is appropriate for target environments like desktop Linux which guarantee the presence of an OpenXR implementation or loader at a specific location, making a built-in loader redundant. - mint exposes From impls for converting to and from mint types where appropriate.

See openxr/examples/vulkan.rs for an example high-performance Vulkan rendering workflow.

openxr-sys

The low-level bindings provide faithful unsafe access to the raw API, with ergonomics and type safety improved as much as feasible compared to a bindgen-style binding without reducing expressiveness. For example, symbols are named according to Rust conventions, enums and bitmasks are strongly typed, and many types have helpful Debug impls. This crate is almost entirely generated from the Khronos XML registry.

Extension points exported contracts — how you extend this code

AsHandle (Interface)
Helper traits [9 implementers]
openxr/src/lib.rs
Handle (Interface)
(no doc)
sys/src/lib.rs
Graphics (Interface)
Static dispatch for OpenXR graphics bindings The types and functions defined by this trait are an implementation detail [6 …
openxr/src/graphics/mod.rs
ActionTy (Interface)
(no doc) [5 implementers]
openxr/src/action.rs
ActionInput (Interface)
(no doc) [3 implementers]
openxr/src/action.rs

Core symbols most depended-on inside this repo

get_instance_proc_addr
called by 418
openxr/src/entry.rs
fmt_enum
called by 137
sys/src/support.rs
cvt
called by 86
openxr/src/lib.rs
attr
called by 42
generator/src/main.rs
as_raw
called by 40
openxr/src/space.rs
finish_element
called by 29
generator/src/main.rs
as_raw
called by 28
openxr/src/instance.rs
exts
called by 27
openxr/src/instance.rs

Shape

Class 1,233
Method 378
Function 31
Enum 13
Interface 5

Languages

Rust100%

Modules by API surface

sys/src/generated.rs870 symbols
openxr/src/generated.rs422 symbols
generator/src/main.rs58 symbols
openxr/src/instance.rs53 symbols
openxr/src/session.rs48 symbols
openxr/src/entry.rs21 symbols
openxr/src/action.rs21 symbols
sys/src/lib.rs16 symbols
openxr/src/space.rs16 symbols
openxr/src/swapchain.rs12 symbols
openxr/src/passthrough.rs11 symbols
openxr/src/lib.rs11 symbols

For agents

$ claude mcp add openxrs \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page