54 void initialize(XrInstance instance, XrSession session);
59 void handleEvent(
const XrEventDataBaseHeader* event);
66 void updateAnchors(XrTime predictedDisplayTime, XrSpace appSpace);
86 QQuick3DXrAnchorManager();
87 ~QQuick3DXrAnchorManager();
89 XrInstance m_instance{XR_NULL_HANDLE};
90 XrSession m_session{XR_NULL_HANDLE};
92 [[
nodiscard]]
bool checkXrResult(
const XrResult &result);
94 bool queryAllAnchorsWithSpecificComponentEnabled(
const XrSpaceComponentTypeFB componentType);
95 bool queryAnchorsByUuids(
const QSet<QUuid>& uuidSet);
97 void addAnchor(XrSpace space, XrUuidEXT uuid);
100 XrResult enumerateSpaceSupportedComponents(XrSpace space,
101 uint32_t componentTypeCapacityInput,
102 uint32_t* componentTypeCountOutput,
103 XrSpaceComponentTypeFB* componentTypes);
104 XrResult getSpaceComponentStatus(XrSpace space,
105 XrSpaceComponentTypeFB componentType,
106 XrSpaceComponentStatusFB* status);
107 XrResult setSpaceComponentStatus(XrSpace space,
108 const XrSpaceComponentStatusSetInfoFB* info,
109 XrAsyncRequestIdFB* requestId);
110 XrResult getSpaceUuid(XrSpace space, XrUuidEXT *uuid);
111 XrResult querySpaces(
const XrSpaceQueryInfoBaseHeaderFB* info, XrAsyncRequestIdFB* requestId);
112 XrResult retrieveSpaceQueryResults(XrAsyncRequestIdFB requestId, XrSpaceQueryResultsFB* results);
113 XrResult getSpaceBoundingBox2D(XrSpace space, XrRect2Df* boundingBox2DOutput);
114 XrResult getSpaceBoundingBox3D(XrSpace space, XrRect3DfFB* boundingBox3DOutput);
115 XrResult getSpaceSemanticLabels(XrSpace space, XrSemanticLabelsFB* semanticLabelsOutput);
116 XrResult getSpaceBoundary2D(XrSpace space, XrBoundary2DFB* boundary2DOutput);
117 XrResult getSpaceRoomLayout(XrSpace space, XrRoomLayoutFB* roomLayoutOutput);
118 XrResult getSpaceContainer(XrSpace space, XrSpaceContainerFB* spaceContainerOutput);
119 XrResult requestSceneCapture(
const XrSceneCaptureRequestInfoFB* info, XrAsyncRequestIdFB* requestId);
121 PFN_xrEnumerateSpaceSupportedComponentsFB xrEnumerateSpaceSupportedComponentsFB =
nullptr;
122 PFN_xrGetSpaceComponentStatusFB xrGetSpaceComponentStatusFB =
nullptr;
123 PFN_xrSetSpaceComponentStatusFB xrSetSpaceComponentStatusFB =
nullptr;
124 PFN_xrGetSpaceUuidFB xrGetSpaceUuidFB =
nullptr;
125 PFN_xrQuerySpacesFB xrQuerySpacesFB =
nullptr;
126 PFN_xrRetrieveSpaceQueryResultsFB xrRetrieveSpaceQueryResultsFB =
nullptr;
127 PFN_xrGetSpaceBoundingBox2DFB xrGetSpaceBoundingBox2DFB =
nullptr;
128 PFN_xrGetSpaceBoundingBox3DFB xrGetSpaceBoundingBox3DFB =
nullptr;
129 PFN_xrGetSpaceSemanticLabelsFB xrGetSpaceSemanticLabelsFB =
nullptr;
130 PFN_xrGetSpaceBoundary2DFB xrGetSpaceBoundary2DFB =
nullptr;
131 PFN_xrGetSpaceRoomLayoutFB xrGetSpaceRoomLayoutFB =
nullptr;
132 PFN_xrGetSpaceContainerFB xrGetSpaceContainerFB =
nullptr;
133 PFN_xrRequestSceneCaptureFB xrRequestSceneCaptureFB =
nullptr;
135 QList<QQuick3DXrSpatialAnchor *> m_anchors;
136 QHash<QUuid,QQuick3DXrSpatialAnchor *> m_anchorsByUuid;