Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/makesdna/DNA_xr_types.h')
-rw-r--r--source/blender/makesdna/DNA_xr_types.h26
1 files changed, 22 insertions, 4 deletions
diff --git a/source/blender/makesdna/DNA_xr_types.h b/source/blender/makesdna/DNA_xr_types.h
index bf77339a494..09eab0d7bf7 100644
--- a/source/blender/makesdna/DNA_xr_types.h
+++ b/source/blender/makesdna/DNA_xr_types.h
@@ -106,8 +106,23 @@ typedef enum eXrPoseFlag {
XR_POSE_AIM = (1 << 1),
} eXrPoseFlag;
+/**
+ * The following user and component path lengths are dependent on OpenXR's XR_MAX_PATH_LENGTH
+ * (256). A user path will be combined with a component path to identify an action binding, and
+ * that combined path should also have a max of XR_MAX_PATH_LENGTH (e.g. user_path =
+ * /user/hand/left, component_path = /input/trigger/value, full_path =
+ * /user/hand/left/input/trigger/value).
+ */
+#define XR_MAX_USER_PATH_LENGTH 64
+#define XR_MAX_COMPONENT_PATH_LENGTH 192
+
/* -------------------------------------------------------------------- */
+typedef struct XrComponentPath {
+ struct XrComponentPath *next, *prev;
+ char path[192]; /* XR_MAX_COMPONENT_PATH_LENGTH */
+} XrComponentPath;
+
typedef struct XrActionMapBinding {
struct XrActionMapBinding *next, *prev;
@@ -117,8 +132,7 @@ typedef struct XrActionMapBinding {
/** OpenXR interaction profile path. */
char profile[256];
/** OpenXR component paths. */
- char component_path0[192];
- char component_path1[192];
+ ListBase component_paths; /* XrComponentPath */
/** Input threshold/region. */
float float_threshold;
@@ -132,6 +146,11 @@ typedef struct XrActionMapBinding {
/* -------------------------------------------------------------------- */
+typedef struct XrUserPath {
+ struct XrUserPath *next, *prev;
+ char path[64]; /* XR_MAX_USER_PATH_LENGTH */
+} XrUserPath;
+
typedef struct XrActionMapItem {
struct XrActionMapItem *next, *prev;
@@ -142,8 +161,7 @@ typedef struct XrActionMapItem {
char _pad[7];
/** OpenXR user paths. */
- char user_path0[64];
- char user_path1[64];
+ ListBase user_paths; /* XrUserPath */
/** Operator to be called on XR events. */
char op[64]; /* OP_MAX_TYPENAME */