···262262 bool hand_tracking_supported;
263263 bool eye_gaze_supported;
264264 bool force_feedback_supported;
265265+ bool ref_space_usage_supported;
265266 bool form_factor_check_supported;
266267267268···418419 struct xrt_visibility_mask **out_mask);
419420420421 /*!
422422+ * Called by the @ref xrt_space_overseer when a reference space that is
423423+ * implemented by this device is first used, or when the last usage of
424424+ * the reference space stops.
425425+ *
426426+ * What is provided is both the @ref xrt_reference_space_type that
427427+ * triggered the usage change and the @ref xrt_input_name (if any) that
428428+ * is used to drive the space.
429429+ *
430430+ * @see xrt_space_overseer_ref_space_inc
431431+ * @see xrt_space_overseer_ref_space_dec
432432+ * @see xrt_input_name
433433+ * @see xrt_reference_space_type
434434+ */
435435+ xrt_result_t (*ref_space_usage)(struct xrt_device *xdev,
436436+ enum xrt_reference_space_type type,
437437+ enum xrt_input_name name,
438438+ bool used);
439439+440440+ /*!
421441 * @brief Check if given form factor is available or not.
422442 *
423443 * This should only be used in HMD device, if the device driver supports form factor check.
···543563 struct xrt_visibility_mask **out_mask)
544564{
545565 return xdev->get_visibility_mask(xdev, type, view_index, out_mask);
566566+}
567567+568568+/*!
569569+ * Helper function for @ref xrt_device::ref_space_usage.
570570+ *
571571+ * @copydoc xrt_device::ref_space_usage
572572+ *
573573+ * @public @memberof xrt_device
574574+ */
575575+static inline xrt_result_t
576576+xrt_device_ref_space_usage(struct xrt_device *xdev,
577577+ enum xrt_reference_space_type type,
578578+ enum xrt_input_name name,
579579+ bool used)
580580+{
581581+ return xdev->ref_space_usage(xdev, type, name, used);
546582}
547583548584/*!