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") \
63 _(right, RIGHT, "/user/hand/right") \
64 _(head, HEAD, "/user/head") \
65 _(gamepad, GAMEPAD, "/user/gamepad") \
66 _(eyes, EYES, "/user/eyes_ext")
78#define OXR_FOR_EACH_SUBACTION_PATH_DETAILED(_) \
79 OXR_FOR_EACH_VALID_SUBACTION_PATH_DETAILED(_) \
80 _(user, USER, "/user")
100#define OXR_SUBPATH_MEMBER(X) bool X;
102#undef OXR_SUBPATH_MEMBER
114#define OXR_CHECK_SUBACTION_PATHS(X) \
115 if (a->X && !b->X) { \
119#undef OXR_CHECK_SUBACTION_PATHS
148 uint32_t subaction_path_count,
149 const XrPath *subaction_paths,
160 XrPath subaction_path,
163 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:98
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:112
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:159