14#include "oxr_extension_support.h"
28#define OXR_FOR_EACH_VALID_SUBACTION_PATH(_) \
44#define OXR_FOR_EACH_SUBACTION_PATH(_) \
45 OXR_FOR_EACH_VALID_SUBACTION_PATH(_) \
61#define OXR_FOR_EACH_VALID_SUBACTION_PATH_DETAILED(_) \
62 _(left, LEFT, "/user/hand/left", "Left") \
63 _(right, RIGHT, "/user/hand/right", "Right") \
64 _(head, HEAD, "/user/head", "Head") \
65 _(gamepad, GAMEPAD, "/user/gamepad", "Gamepad") \
66 _(eyes, EYES, "/user/eyes_ext", "Eyes")
79#define OXR_FOR_EACH_SUBACTION_PATH_DETAILED(_) \
80 OXR_FOR_EACH_VALID_SUBACTION_PATH_DETAILED(_) \
81 _(user, USER, "/user", "User")
101#define OXR_SUBPATH_MEMBER(X) bool X;
103#undef OXR_SUBPATH_MEMBER
115#define OXR_CHECK_SUBACTION_PATHS(X) \
116 if (a->X && !b->X) { \
120#undef OXR_CHECK_SUBACTION_PATHS
149 uint32_t subaction_path_count,
150 const XrPath *subaction_paths,
161 XrPath subaction_path,
164 return oxr_classify_subaction_paths(cache, 1, &subaction_path, out_subaction_paths);
Forward declarations for OpenXR state tracker structs.
#define OXR_FOR_EACH_SUBACTION_PATH(_)
Expansion macro (x-macro) that calls the macro you pass with the shorthand name of each subaction pat...
Definition oxr_subaction.h:44
This holds cached paths for subaction paths.
Definition oxr_instance_path_cache.h:27
A parsed equivalent of a list of sub-action paths.
Definition oxr_subaction.h:99
static bool oxr_subaction_paths_is_subset_of(const struct oxr_subaction_paths *a, const struct oxr_subaction_paths *b)
Helper function to determine if the set of paths in a is a subset of the paths in b.
Definition oxr_subaction.h:113
static bool oxr_classify_subaction_path(const struct oxr_instance_path_cache *cache, XrPath subaction_path, struct oxr_subaction_paths *out_subaction_paths)
Convenience wrapper around oxr_classify_subaction_paths() for the single-path case,...
Definition oxr_subaction.h:160