Monado OpenXR Runtime
Loading...
Searching...
No Matches
oxr_binding_profile.h
Go to the documentation of this file.
1// Copyright 2026, NVIDIA CORPORATION.
2// SPDX-License-Identifier: BSL-1.0
3/*!
4 * @file
5 * @brief Helpers for runtime interaction profile binding data.
6 * @ingroup oxr_main
7 */
8
9#pragma once
10
11#include "xrt/xrt_device.h"
12
13#include "oxr_binding_point.h"
14#include "oxr_extension_support.h"
16
17
18#ifdef __cplusplus
19extern "C" {
20#endif
21
22/*!
23 * Runtime interaction profile binding data cloned from generated templates.
24 */
26{
27 //! Owning registry.
29 //! Immutable generated source template.
30 const struct oxr_profile_template *templ;
31
32 //! Runtime XrPath for the interaction profile.
33 XrPath path;
34 //! XRT device name associated with the generated profile template.
36 //! User-facing localized profile name.
37 const char *localized_name;
38
39 //! All generated binding points for this profile.
41 size_t binding_point_count;
42
43 //! All generated DPAD emulations for this profile.
45 size_t dpad_emulation_count;
46
47 //! Maps every generated binding point XrPath to the first matching point.
49};
50
51/*!
52 * Find a binding point in @p profile by its runtime binding point path.
53 *
54 * @memberof oxr_binding_profile
55 */
56bool
57oxr_binding_profile_find_binding_point(const struct oxr_binding_profile *profile,
58 XrPath path,
59 const struct oxr_binding_point **out_binding_point);
60
61
62#ifdef __cplusplus
63}
64#endif
Runtime binding point data cloned from generated templates.
Forward declarations for OpenXR state tracker structs.
Runtime description of one bindable path on an interaction profile.
Definition oxr_binding_point.h:103
Runtime interaction profile binding data cloned from generated templates.
Definition oxr_binding_profile.h:26
struct oxr_binding_registry * registry
Owning registry.
Definition oxr_binding_profile.h:28
const char * localized_name
User-facing localized profile name.
Definition oxr_binding_profile.h:37
enum xrt_device_name device_name
XRT device name associated with the generated profile template.
Definition oxr_binding_profile.h:35
struct u_hashmap_int * binding_points_by_path
Maps every generated binding point XrPath to the first matching point.
Definition oxr_binding_profile.h:48
struct oxr_binding_point * binding_points
All generated binding points for this profile.
Definition oxr_binding_profile.h:40
XrPath path
Runtime XrPath for the interaction profile.
Definition oxr_binding_profile.h:33
struct oxr_dpad_emulation * dpad_emulations
All generated DPAD emulations for this profile.
Definition oxr_binding_profile.h:44
const struct oxr_profile_template * templ
Immutable generated source template.
Definition oxr_binding_profile.h:30
Complete runtime binding registry for all action contexts of an XrInstance.
Definition oxr_binding_registry.h:35
Runtime metadata for one DPAD emulation source, for example /user/hand/left/input/thumbstick.
Definition oxr_binding_point.h:29
A simple uint64_t key to a void pointer hashmap.
Definition u_hashmap.cpp:24
xrt_device_name
A enum that is used to name devices so that the state trackers can reason about the devices easier.
Definition xrt_defines.h:758
Header defining an xrt display or controller device.