st/oxr: Handle XR_REFERENCE_SPACE_TYPE_LOCALIZATION_MAP_ML

This commit is contained in:
Jakob Bornecrantz 2023-12-08 11:55:10 +00:00
parent 142969b509
commit d97d7d75c7
4 changed files with 15 additions and 2 deletions

View file

@ -62,9 +62,11 @@ oxr_ref_space_to_xr(enum oxr_space_type space_type)
case OXR_SPACE_TYPE_REFERENCE_STAGE: return XR_REFERENCE_SPACE_TYPE_STAGE;
case OXR_SPACE_TYPE_REFERENCE_UNBOUNDED_MSFT: return XR_REFERENCE_SPACE_TYPE_UNBOUNDED_MSFT;
case OXR_SPACE_TYPE_REFERENCE_COMBINED_EYE_VARJO: return XR_REFERENCE_SPACE_TYPE_COMBINED_EYE_VARJO;
case OXR_SPACE_TYPE_REFERENCE_LOCALIZATION_MAP_ML: return XR_REFERENCE_SPACE_TYPE_LOCALIZATION_MAP_ML;
case OXR_SPACE_TYPE_ACTION: return XR_REFERENCE_SPACE_TYPE_MAX_ENUM;
}
return XR_REFERENCE_SPACE_TYPE_MAX_ENUM;
}
@ -78,6 +80,7 @@ xr_ref_space_to_oxr(XrReferenceSpaceType space_type)
case XR_REFERENCE_SPACE_TYPE_STAGE: return OXR_SPACE_TYPE_REFERENCE_STAGE;
case XR_REFERENCE_SPACE_TYPE_UNBOUNDED_MSFT: return OXR_SPACE_TYPE_REFERENCE_UNBOUNDED_MSFT;
case XR_REFERENCE_SPACE_TYPE_COMBINED_EYE_VARJO: return OXR_SPACE_TYPE_REFERENCE_COMBINED_EYE_VARJO;
case XR_REFERENCE_SPACE_TYPE_LOCALIZATION_MAP_ML: return OXR_SPACE_TYPE_REFERENCE_LOCALIZATION_MAP_ML;
case XR_REFERENCE_SPACE_TYPE_MAX_ENUM: return (enum oxr_space_type) - 1;
}
@ -113,6 +116,7 @@ oxr_ref_space_to_xrt(enum oxr_space_type space_type)
// Has no mapping to a Monado semantic space.
case OXR_SPACE_TYPE_REFERENCE_COMBINED_EYE_VARJO: return XRT_SPACE_REFERENCE_TYPE_INVALID;
case OXR_SPACE_TYPE_REFERENCE_LOCALIZATION_MAP_ML: return XRT_SPACE_REFERENCE_TYPE_INVALID;
case OXR_SPACE_TYPE_ACTION: return XRT_SPACE_REFERENCE_TYPE_INVALID;
}

View file

@ -99,6 +99,7 @@ enum oxr_space_type
OXR_SPACE_TYPE_REFERENCE_STAGE,
OXR_SPACE_TYPE_REFERENCE_UNBOUNDED_MSFT,
OXR_SPACE_TYPE_REFERENCE_COMBINED_EYE_VARJO,
OXR_SPACE_TYPE_REFERENCE_LOCALIZATION_MAP_ML,
OXR_SPACE_TYPE_ACTION,
};

View file

@ -2013,10 +2013,17 @@ oxr_space_type_is_reference(enum oxr_space_type space_type)
case OXR_SPACE_TYPE_REFERENCE_LOCAL_FLOOR:
case OXR_SPACE_TYPE_REFERENCE_STAGE:
case OXR_SPACE_TYPE_REFERENCE_UNBOUNDED_MSFT:
case OXR_SPACE_TYPE_REFERENCE_COMBINED_EYE_VARJO: return true;
case OXR_SPACE_TYPE_REFERENCE_COMBINED_EYE_VARJO:
case OXR_SPACE_TYPE_REFERENCE_LOCALIZATION_MAP_ML:
// These are reference spaces.
return true;
case OXR_SPACE_TYPE_ACTION: return false;
case OXR_SPACE_TYPE_ACTION:
// Not a reference space.
return false;
}
// Handles invalid value.
return false;
}

View file

@ -96,6 +96,7 @@ get_xrt_space(struct oxr_logger *log, struct oxr_space *spc, struct xrt_space **
case OXR_SPACE_TYPE_REFERENCE_STAGE: xspace = spc->sess->sys->xso->semantic.stage; break;
case OXR_SPACE_TYPE_REFERENCE_UNBOUNDED_MSFT: xspace = spc->sess->sys->xso->semantic.unbounded; break;
case OXR_SPACE_TYPE_REFERENCE_COMBINED_EYE_VARJO: xspace = NULL; break;
case OXR_SPACE_TYPE_REFERENCE_LOCALIZATION_MAP_ML: xspace = NULL; break;
}
if (xspace == NULL) {