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